diff --git a/tsconfig.json b/tsconfig.json index 2f15a31318..83f509be1d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,6 +12,7 @@ "outDir": "dist/wotlk", "pretty": false, "allowJs": true, + "resolveJsonModule": true, "esModuleInterop": true, "baseUrl": "." } diff --git a/ui/core/talents/deathknight.ts b/ui/core/talents/deathknight.ts index 254e6cedc2..0ed742bb2e 100644 --- a/ui/core/talents/deathknight.ts +++ b/ui/core/talents/deathknight.ts @@ -5,1171 +5,9 @@ import { Player } from '../player.js'; import { GlyphsConfig, GlyphsPicker } from './glyphs_picker.js'; import { TalentsConfig, TalentsPicker, newTalentsConfig } from './talents_picker.js'; -export const deathknightTalentsConfig: TalentsConfig = newTalentsConfig([ - { - "name": "Blood", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/398.jpg", - "talents": [ - { - "fieldName": "butchery", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 48979, - 49483 - ], - "maxPoints": 2 - }, - { - "fieldName": "subversion", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 48997, - 49490, - 49491 - ], - "maxPoints": 3 - }, - { - "fieldName": "bladeBarrier", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 49182, - 49500, - 49501, - 55225, - 55226 - ], - "maxPoints": 5 - }, - { - "fieldName": "bladedArmor", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 48978, - 49390, - 49391, - 49392, - 49393 - ], - "maxPoints": 5 - }, - { - "fieldName": "scentOfBlood", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 49004, - 49508, - 49509 - ], - "maxPoints": 3 - }, - { - "fieldName": "twoHandedWeaponSpecialization", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 55107, - 55108 - ], - "maxPoints": 2 - }, - { - "fieldName": "runeTap", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 48982 - ], - "maxPoints": 1 - }, - { - "fieldName": "darkConviction", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 48987, - 49477, - 49478, - 49479, - 49480 - ], - "maxPoints": 5 - }, - { - "fieldName": "deathRuneMastery", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 49467, - 50033, - 50034 - ], - "maxPoints": 3 - }, - { - "fieldName": "improvedRuneTap", - "location": { - "rowIdx": 3, - "colIdx": 0 - }, - "spellIds": [ - 48985, - 49488, - 49489 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 2, - "colIdx": 0 - } - }, - { - "fieldName": "spellDeflection", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 49145, - 49495, - 49497 - ], - "maxPoints": 3 - }, - { - "fieldName": "vendetta", - "location": { - "rowIdx": 3, - "colIdx": 3 - }, - "spellIds": [ - 49015, - 50154, - 55136 - ], - "maxPoints": 3 - }, - { - "fieldName": "bloodyStrikes", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 48977, - 49394, - 49395 - ], - "maxPoints": 3 - }, - { - "fieldName": "veteranOfTheThirdWar", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 49006, - 49526, - 50029 - ], - "maxPoints": 3 - }, - { - "fieldName": "markOfBlood", - "location": { - "rowIdx": 4, - "colIdx": 3 - }, - "spellIds": [ - 49005 - ], - "maxPoints": 1 - }, - { - "fieldName": "bloodyVengeance", - "location": { - "rowIdx": 5, - "colIdx": 1 - }, - "spellIds": [ - 48988, - 49503, - 49504 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 2, - "colIdx": 1 - } - }, - { - "fieldName": "abominationsMight", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 53137, - 53138 - ], - "maxPoints": 2 - }, - { - "fieldName": "bloodworms", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 49027, - 49542, - 49543 - ], - "maxPoints": 3 - }, - { - "fieldName": "hysteria", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 49016 - ], - "maxPoints": 1 - }, - { - "fieldName": "improvedBloodPresence", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 50365, - 50371 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedDeathStrike", - "location": { - "rowIdx": 7, - "colIdx": 0 - }, - "spellIds": [ - 62905, - 62908 - ], - "maxPoints": 2 - }, - { - "fieldName": "suddenDoom", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 49018, - 49529, - 49530 - ], - "maxPoints": 3 - }, - { - "fieldName": "vampiricBlood", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 55233 - ], - "maxPoints": 1 - }, - { - "fieldName": "willOfTheNecropolis", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 49189, - 50149, - 50150 - ], - "maxPoints": 3 - }, - { - "fieldName": "heartStrike", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 55050 - ], - "maxPoints": 1 - }, - { - "fieldName": "mightOfMograine", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 49023, - 49533, - 49534 - ], - "maxPoints": 3 - }, - { - "fieldName": "bloodGorged", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 61154, - 61155, - 61156, - 61157, - 61158 - ], - "maxPoints": 5 - }, - { - "fieldName": "dancingRuneWeapon", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 49028 - ], - "maxPoints": 1 - }, +import DkTalentsJson from './trees/deathknight.json'; - ] - }, - { - "name": "Frost", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/399.jpg", - "talents": [ - { - "fieldName": "improvedIcyTouch", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 49175, - 50031, - 51456 - ], - "maxPoints": 3 - }, - { - "fieldName": "runicPowerMastery", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 49455, - 50147 - ], - "maxPoints": 2 - }, - { - "fieldName": "toughness", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 49042, - 49786, - 49787, - 49788, - 49789 - ], - "maxPoints": 5 - }, - { - "fieldName": "icyReach", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 55061, - 55062 - ], - "maxPoints": 2 - }, - { - "fieldName": "blackIce", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 49140, - 49661, - 49662, - 49663, - 49664 - ], - "maxPoints": 5 - }, - { - "fieldName": "nervesOfColdSteel", - "location": { - "rowIdx": 1, - "colIdx": 3 - }, - "spellIds": [ - 49226, - 50137, - 50138 - ], - "maxPoints": 3 - }, - { - "fieldName": "icyTalons", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 50880, - 50884, - 50885, - 50886, - 50887 - ], - "maxPoints": 5, - "prereqLocation": { - "rowIdx": 0, - "colIdx": 0 - } - }, - { - "fieldName": "lichborne", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 49039 - ], - "maxPoints": 1 - }, - { - "fieldName": "annihilation", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 51468, - 51472, - 51473 - ], - "maxPoints": 3 - }, - { - "fieldName": "killingMachine", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 51123, - 51127, - 51128, - 51129, - 51130 - ], - "maxPoints": 5 - }, - { - "fieldName": "chillOfTheGrave", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 49149, - 50115 - ], - "maxPoints": 2 - }, - { - "fieldName": "endlessWinter", - "location": { - "rowIdx": 3, - "colIdx": 3 - }, - "spellIds": [ - 49137, - 49657 - ], - "maxPoints": 2 - }, - { - "fieldName": "frigidDreadplate", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 49186, - 51108, - 51109 - ], - "maxPoints": 3 - }, - { - "fieldName": "glacierRot", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 49471, - 49790, - 49791 - ], - "maxPoints": 3 - }, - { - "fieldName": "deathchill", - "location": { - "rowIdx": 4, - "colIdx": 3 - }, - "spellIds": [ - 49796 - ], - "maxPoints": 1 - }, - { - "fieldName": "improvedIcyTalons", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 55610 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 2, - "colIdx": 0 - } - }, - { - "fieldName": "mercilessCombat", - "location": { - "rowIdx": 5, - "colIdx": 1 - }, - "spellIds": [ - 49024, - 49538 - ], - "maxPoints": 2 - }, - { - "fieldName": "rime", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 49188, - 56822, - 59057 - ], - "maxPoints": 3 - }, - { - "fieldName": "chilblains", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 50040, - 50041, - 50043 - ], - "maxPoints": 3 - }, - { - "fieldName": "hungeringCold", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 49203 - ], - "maxPoints": 1 - }, - { - "fieldName": "improvedFrostPresence", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 50384, - 50385 - ], - "maxPoints": 2 - }, - { - "fieldName": "threatOfThassarian", - "location": { - "rowIdx": 7, - "colIdx": 0 - }, - "spellIds": [ - 65661, - 66191, - 66192 - ], - "maxPoints": 3 - }, - { - "fieldName": "bloodOfTheNorth", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 54639, - 54638, - 54637 - ], - "maxPoints": 3 - }, - { - "fieldName": "unbreakableArmor", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 51271 - ], - "maxPoints": 1 - }, - { - "fieldName": "acclimation", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 49200, - 50151, - 50152 - ], - "maxPoints": 3 - }, - { - "fieldName": "frostStrike", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 49143 - ], - "maxPoints": 1 - }, - { - "fieldName": "guileOfGorefiend", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 50187, - 50190, - 50191 - ], - "maxPoints": 3 - }, - { - "fieldName": "tundraStalker", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 49202, - 50127, - 50128, - 50129, - 50130 - ], - "maxPoints": 5 - }, - { - "fieldName": "howlingBlast", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 49184 - ], - "maxPoints": 1 - }, - ] - }, - { - "name": "Unholy", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/400.jpg", - "talents": [ - { - "fieldName": "viciousStrikes", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 51745, - 51746 - ], - "maxPoints": 2 - }, - { - "fieldName": "virulence", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 48962, - 49567, - 49568 - ], - "maxPoints": 3 - }, - { - "fieldName": "anticipation", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 55129, - 55130, - 55131, - 55132, - 55133 - ], - "maxPoints": 5 - }, - { - "fieldName": "epidemic", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 49036, - 49562 - ], - "maxPoints": 2 - }, - { - "fieldName": "morbidity", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 48963, - 49564, - 49565 - ], - "maxPoints": 3 - }, - { - "fieldName": "unholyCommand", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 49588, - 49589 - ], - "maxPoints": 2 - }, - { - "fieldName": "ravenousDead", - "location": { - "rowIdx": 1, - "colIdx": 3 - }, - "spellIds": [ - 48965, - 49571, - 49572 - ], - "maxPoints": 3 - }, - { - "fieldName": "outbreak", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 49013, - 55236, - 55237 - ], - "maxPoints": 3 - }, - { - "fieldName": "necrosis", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 51459, - 51462, - 51463, - 51464, - 51465 - ], - "maxPoints": 5 - }, - { - "fieldName": "corpseExplosion", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 49158 - ], - "maxPoints": 1 - }, - { - "fieldName": "onAPaleHorse", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 49146, - 51267 - ], - "maxPoints": 2 - }, - { - "fieldName": "bloodCakedBlade", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 49219, - 49627, - 49628 - ], - "maxPoints": 3 - }, - { - "fieldName": "nightOfTheDead", - "location": { - "rowIdx": 3, - "colIdx": 3 - }, - "spellIds": [ - 55620, - 55623 - ], - "maxPoints": 2 - }, - { - "fieldName": "unholyBlight", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 49194 - ], - "maxPoints": 1 - }, - { - "fieldName": "impurity", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 49220, - 49633, - 49635, - 49636, - 49638 - ], - "maxPoints": 5 - }, - { - "fieldName": "dirge", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 49223, - 49599 - ], - "maxPoints": 2 - }, - { - "fieldName": "desecration", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 55666, - 55667 - ], - "maxPoints": 2 - }, - { - "fieldName": "magicSuppression", - "location": { - "rowIdx": 5, - "colIdx": 1 - }, - "spellIds": [ - 49224, - 49610, - 49611 - ], - "maxPoints": 3 - }, - { - "fieldName": "reaping", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 49208, - 56834, - 56835 - ], - "maxPoints": 3 - }, - { - "fieldName": "masterOfGhouls", - "location": { - "rowIdx": 5, - "colIdx": 3 - }, - "spellIds": [ - 52143 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 3, - "colIdx": 3 - } - }, - { - "fieldName": "desolation", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 66799, - 66814, - 66815, - 66816, - 66817 - ], - "maxPoints": 5 - }, - { - "fieldName": "antiMagicZone", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 51052 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 5, - "colIdx": 1 - } - }, - { - "fieldName": "improvedUnholyPresence", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 50391, - 50392 - ], - "maxPoints": 2 - }, - { - "fieldName": "ghoulFrenzy", - "location": { - "rowIdx": 6, - "colIdx": 3 - }, - "spellIds": [ - 63560 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 5, - "colIdx": 3 - } - }, - { - "fieldName": "cryptFever", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 49032, - 49631, - 49632 - ], - "maxPoints": 3 - }, - { - "fieldName": "boneShield", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 49222 - ], - "maxPoints": 1 - }, - { - "fieldName": "wanderingPlague", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 49217, - 49654, - 49655 - ], - "maxPoints": 3 - }, - { - "fieldName": "ebonPlaguebringer", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 51099, - 51160, - 51161 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 7, - "colIdx": 1 - } - }, - { - "fieldName": "scourgeStrike", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 55090 - ], - "maxPoints": 1 - }, - { - "fieldName": "rageOfRivendare", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 50117, - 50118, - 50119, - 50120, - 50121 - ], - "maxPoints": 5 - }, - { - "fieldName": "summonGargoyle", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 49206 - ], - "maxPoints": 1 - }, - - ] - }, -]); +export const deathknightTalentsConfig: TalentsConfig = newTalentsConfig(DkTalentsJson); export const deathknightGlyphsConfig: GlyphsConfig = { majorGlyphs: { diff --git a/ui/core/talents/druid.ts b/ui/core/talents/druid.ts index e3a1cfbd3f..c6a7d63d4f 100644 --- a/ui/core/talents/druid.ts +++ b/ui/core/talents/druid.ts @@ -3,1177 +3,9 @@ import { DruidTalents, DruidMajorGlyph, DruidMinorGlyph } from '../proto/druid.j import { GlyphsConfig, } from './glyphs_picker.js'; import { TalentsConfig, newTalentsConfig } from './talents_picker.js'; -export const druidTalentsConfig: TalentsConfig = newTalentsConfig([ - { - "name": "Balance", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/283.jpg", - "talents": [ - { - "fieldName": "starlightWrath", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 16814, - 16815, - 16816, - 16817, - 16818 - ], - "maxPoints": 5 - }, - { - "fieldName": "genesis", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 57810, - 57811, - 57812, - 57813, - 57814 - ], - "maxPoints": 5 - }, - { - "fieldName": "moonglow", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 16845, - 16846, - 16847 - ], - "maxPoints": 3 - }, - { - "fieldName": "naturesMajesty", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 35363, - 35364 - ], - "maxPoints": 2, - }, - { - "fieldName": "improvedMoonfire", - "location": { - "rowIdx": 1, - "colIdx": 3 - }, - "spellIds": [ - 16821, - 16822 - ], - "maxPoints": 2 - }, - { - "fieldName": "brambles", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 16836, - 16839, - 16840 - ], - "maxPoints": 3 - }, - { - "fieldName": "naturesGrace", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 16880, - 61345, - 61346 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 1, - "colIdx": 1 - } - }, - { - "fieldName": "naturesSplendor", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 57865 - ], - "maxPoints": 1 - }, - { - "fieldName": "naturesReach", - "location": { - "rowIdx": 2, - "colIdx": 3 - }, - "spellIds": [ - 16819, - 16820 - ], - "maxPoints": 2 - }, - { - "fieldName": "vengeance", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 16909, - 16910, - 16911, - 16912, - 16913 - ], - "maxPoints": 5 - }, - { - "fieldName": "celestialFocus", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 16850, - 16923, - 16924 - ], - "maxPoints": 3 - }, - { - "fieldName": "lunarGuidance", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 33589, - 33590, - 33591 - ], - "maxPoints": 3 - }, - { - "fieldName": "insectSwarm", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 5570 - ], - "maxPoints": 1 - }, - { - "fieldName": "improvedInsectSwarm", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 57849, - 57850, - 57851 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "dreamstate", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 33597, - 33599, - 33956 - ], - "maxPoints": 3 - }, - { - "fieldName": "moonfury", - "location": { - "rowIdx": 5, - "colIdx": 1 - }, - "spellIds": [ - 16896, - 16897, - 16899 - ], - "maxPoints": 3 - }, - { - "fieldName": "balanceOfPower", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 33592, - 33596 - ], - "maxPoints": 2 - }, - { - "fieldName": "moonkinForm", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 24858 - ], - "maxPoints": 1, - }, - { - "fieldName": "improvedMoonkinForm", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 48384, - 48395, - 48396 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "improvedFaerieFire", - "location": { - "rowIdx": 6, - "colIdx": 3 - }, - "spellIds": [ - 33600, - 33601, - 33602 - ], - "maxPoints": 3 - }, - { - "fieldName": "owlkinFrenzy", - "location": { - "rowIdx": 7, - "colIdx": 0 - }, - "spellIds": [ - 48389, - 48392, - 48393 - ], - "maxPoints": 3 - }, - { - "fieldName": "wrathOfCenarius", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 33603, - 33604, - 33605, - 33606, - 33607 - ], - "maxPoints": 5 - }, - { - "fieldName": "eclipse", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 48516, - 48521, - 48525 - ], - "maxPoints": 3 - }, - { - "fieldName": "typhoon", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 50516 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "forceOfNature", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 33831 - ], - "maxPoints": 1 - }, - { - "fieldName": "galeWinds", - "location": { - "rowIdx": 8, - "colIdx": 3 - }, - "spellIds": [ - 48488, - 48514 - ], - "maxPoints": 2 - }, - { - "fieldName": "earthAndMoon", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 48506, - 48510, - 48511 - ], - "maxPoints": 3 - }, - { - "fieldName": "starfall", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 48505 - ], - "maxPoints": 1 - } - ] - }, - { - "name": "Feral Combat", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/281.jpg", - "talents": [ - { - "fieldName": "ferocity", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 16934, - 16935, - 16936, - 16937, - 16938 - ], - "maxPoints": 5 - }, - { - "fieldName": "feralAggression", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 16858, - 16859, - 16860, - 16861, - 16862 - ], - "maxPoints": 5 - }, - { - "fieldName": "feralInstinct", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 16947, - 16948, - 16949 - ], - "maxPoints": 3 - }, - { - "fieldName": "savageFury", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 16998, - 16999 - ], - "maxPoints": 2 - }, - { - "fieldName": "thickHide", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 16929, - 16930, - 16931 - ], - "maxPoints": 3 - }, - { - "fieldName": "feralSwiftness", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 17002, - 24866 - ], - "maxPoints": 2 - }, - { - "fieldName": "survivalInstincts", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 61336 - ], - "maxPoints": 1 - }, - { - "fieldName": "sharpenedClaws", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 16942, - 16943, - 16944 - ], - "maxPoints": 3, - }, - { - "fieldName": "shreddingAttacks", - "location": { - "rowIdx": 3, - "colIdx": 0 - }, - "spellIds": [ - 16966, - 16968 - ], - "maxPoints": 2 - }, - { - "fieldName": "predatoryStrikes", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 16972, - 16974, - 16975 - ], - "maxPoints": 3 - }, - { - "fieldName": "primalFury", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 37116, - 37117 - ], - "maxPoints": 2, - "prereqLocation": { - "rowIdx": 2, - "colIdx": 2 - } - }, - { - "fieldName": "primalPrecision", - "location": { - "rowIdx": 3, - "colIdx": 3 - }, - "spellIds": [ - 48409, - 48410 - ], - "maxPoints": 2 - }, - { - "fieldName": "brutalImpact", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 16940, - 16941 - ], - "maxPoints": 2 - }, - { - "fieldName": "feralCharge", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 49377 - ], - "maxPoints": 1 - }, - { - "fieldName": "nurturingInstinct", - "location": { - "rowIdx": 4, - "colIdx": 3 - }, - "spellIds": [ - 33872, - 33873 - ], - "maxPoints": 2 - }, - { - "fieldName": "naturalReaction", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 57878, - 57880, - 57881 - ], - "maxPoints": 3 - }, - { - "fieldName": "heartOfTheWild", - "location": { - "rowIdx": 5, - "colIdx": 1 - }, - "spellIds": [ - 17003, - 17004, - 17005, - 17006, - 24894 - ], - "maxPoints": 5, - "prereqLocation": { - "rowIdx": 3, - "colIdx": 1 - } - }, - { - "fieldName": "survivalOfTheFittest", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 33853, - 33855, - 33856 - ], - "maxPoints": 3 - }, - { - "fieldName": "leaderOfThePack", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 17007 - ], - "maxPoints": 1, - }, - { - "fieldName": "improvedLeaderOfThePack", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 34297, - 34300 - ], - "maxPoints": 2, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "primalTenacity", - "location": { - "rowIdx": 6, - "colIdx": 3 - }, - "spellIds": [ - 33851, - 33852, - 33957 - ], - "maxPoints": 3 - }, - { - "fieldName": "protectorOfThePack", - "location": { - "rowIdx": 7, - "colIdx": 0 - }, - "spellIds": [ - 57873, - 57876, - 57877 - ], - "maxPoints": 3 - }, - { - "fieldName": "predatoryInstincts", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 33859, - 33866, - 33867 - ], - "maxPoints": 3 - }, - { - "fieldName": "infectedWounds", - "location": { - "rowIdx": 7, - "colIdx": 3 - }, - "spellIds": [ - 48483, - 48484, - 48485 - ], - "maxPoints": 3 - }, - { - "fieldName": "kingOfTheJungle", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 48492, - 48494, - 48495 - ], - "maxPoints": 3 - }, - { - "fieldName": "mangle", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 33917 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "improvedMangle", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 48532, - 48489, - 48491 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 8, - "colIdx": 1 - } - }, - { - "fieldName": "rendAndTear", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 48432, - 48433, - 48434, - 51268, - 51269 - ], - "maxPoints": 5 - }, - { - "fieldName": "primalGore", - "location": { - "rowIdx": 9, - "colIdx": 2 - }, - "spellIds": [ - 63503 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 9, - "colIdx": 1 - } - }, - { - "fieldName": "berserk", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 50334 - ], - "maxPoints": 1 - } - ] - }, - { - "name": "Restoration", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/282.jpg", - "talents": [ - { - "fieldName": "improvedMarkOfTheWild", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 17050, - 17051 - ], - "maxPoints": 2 - }, - { - "fieldName": "naturesFocus", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 17063, - 17065, - 17066 - ], - "maxPoints": 3 - }, - { - "fieldName": "furor", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 17056, - 17058, - 17059, - 17060, - 17061 - ], - "maxPoints": 5 - }, - { - "fieldName": "naturalist", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 17069, - 17070, - 17071, - 17072, - 17073 - ], - "maxPoints": 5 - }, - { - "fieldName": "subtlety", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 17118, - 17119, - 17120 - ], - "maxPoints": 3 - }, - { - "fieldName": "naturalShapeshifter", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 16833, - 16834, - 16835 - ], - "maxPoints": 3 - }, - { - "fieldName": "intensity", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 17106, - 17107, - 17108 - ], - "maxPoints": 3 - }, - { - "fieldName": "omenOfClarity", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 16864 - ], - "maxPoints": 1 - }, - { - "fieldName": "masterShapeshifter", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 48411, - 48412 - ], - "maxPoints": 2, - "prereqLocation": { - "rowIdx": 1, - "colIdx": 2 - } - }, - { - "fieldName": "tranquilSpirit", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 24968, - 24969, - 24970, - 24971, - 24972 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedRejuvenation", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 17111, - 17112, - 17113 - ], - "maxPoints": 3 - }, - { - "fieldName": "naturesSwiftness", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 17116 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 2, - "colIdx": 0 - } - }, - { - "fieldName": "giftOfNature", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 17104, - 24943, - 24944, - 24945, - 24946 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedTranquility", - "location": { - "rowIdx": 4, - "colIdx": 3 - }, - "spellIds": [ - 17123, - 17124 - ], - "maxPoints": 2 - }, - { - "fieldName": "empoweredTouch", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 33879, - 33880 - ], - "maxPoints": 2 - }, - { - "fieldName": "naturesBounty", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 17074, - 17075, - 17076, - 17077, - 17078 - ], - "maxPoints": 5, - "prereqLocation": { - "rowIdx": 3, - "colIdx": 2 - } - }, - { - "fieldName": "livingSpirit", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 34151, - 34152, - 34153 - ], - "maxPoints": 3 - }, - { - "fieldName": "swiftmend", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 18562 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "naturalPerfection", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 33881, - 33882, - 33883 - ], - "maxPoints": 3 - }, - { - "fieldName": "empoweredRejuvenation", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 33886, - 33887, - 33888, - 33889, - 33890 - ], - "maxPoints": 5 - }, - { - "fieldName": "livingSeed", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 48496, - 48499, - 48500 - ], - "maxPoints": 3 - }, - { - "fieldName": "revitalize", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 48539, - 48544, - 48545 - ], - "maxPoints": 3 - }, - { - "fieldName": "treeOfLife", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 65139 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 7, - "colIdx": 1 - } - }, - { - "fieldName": "improvedTreeOfLife", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 48535, - 48536, - 48537 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 8, - "colIdx": 1 - } - }, - { - "fieldName": "improvedBarkskin", - "location": { - "rowIdx": 9, - "colIdx": 0 - }, - "spellIds": [ - 63410, - 63411 - ], - "maxPoints": 2 - }, - { - "fieldName": "giftOfTheEarthmother", - "location": { - "rowIdx": 9, - "colIdx": 2 - }, - "spellIds": [ - 51179, - 51180, - 51181, - 51182, - 51183 - ], - "maxPoints": 5 - }, - { - "fieldName": "wildGrowth", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 48438 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 8, - "colIdx": 1 - } - } - ] - } -]); +import DruidTalentsJson from './trees/druid.json'; + +export const druidTalentsConfig: TalentsConfig = newTalentsConfig(DruidTalentsJson); export const druidGlyphsConfig: GlyphsConfig = { majorGlyphs: { diff --git a/ui/core/talents/factory.ts b/ui/core/talents/factory.ts index 6e8bb8f201..b61e482ae0 100644 --- a/ui/core/talents/factory.ts +++ b/ui/core/talents/factory.ts @@ -103,9 +103,9 @@ export function talentStringToProto(proto: TalentsProto, talentStr const points = parseInt(talentString); if (talentConfig.fieldName) { if (talentConfig.maxPoints == 1) { - (proto[talentConfig.fieldName] as unknown as boolean) = points == 1; + (proto[talentConfig.fieldName as keyof TalentsProto] as unknown as boolean) = points == 1; } else { - (proto[talentConfig.fieldName] as unknown as number) = points; + (proto[talentConfig.fieldName as keyof TalentsProto] as unknown as number) = points; } } }); @@ -119,7 +119,7 @@ export function talentStringToProto(proto: TalentsProto, talentStr export function protoToTalentString(proto: TalentsProto, talentsConfig: TalentsConfig): string { return talentsConfig.map(treeConfig => { return treeConfig.talents - .map(talentConfig => String(Number(proto[talentConfig.fieldName!]))) + .map(talentConfig => String(Number(proto[(talentConfig.fieldName as keyof TalentsProto)!]))) .join('').replace(/0+$/g, ''); }).join('-').replace(/-+$/g, ''); } diff --git a/ui/core/talents/hunter.ts b/ui/core/talents/hunter.ts index 8eab2e0285..ff493ea317 100644 --- a/ui/core/talents/hunter.ts +++ b/ui/core/talents/hunter.ts @@ -3,1127 +3,9 @@ import { HunterTalents, HunterMajorGlyph, HunterMinorGlyph, HunterPetTalents } f import { GlyphsConfig } from './glyphs_picker.js'; import { TalentsConfig, newTalentsConfig } from './talents_picker.js'; -export const hunterTalentsConfig: TalentsConfig = newTalentsConfig([ - { - "name": "Beast Mastery", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/361.jpg", - "talents": [ - { - "fieldName": "improvedAspectOfTheHawk", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 19552, - 19553, - 19554, - 19555, - 19556 - ], - "maxPoints": 5 - }, - { - "fieldName": "enduranceTraining", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 19583, - 19584, - 19585, - 19586, - 19587 - ], - "maxPoints": 5 - }, - { - "fieldName": "focusedFire", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 35029, - 35030 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedAspectOfTheMonkey", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 19549, - 19550, - 19551 - ], - "maxPoints": 3 - }, - { - "fieldName": "thickHide", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 19609, - 19610, - 19612 - ], - "maxPoints": 3 - }, - { - "fieldName": "improvedRevivePet", - "location": { - "rowIdx": 1, - "colIdx": 3 - }, - "spellIds": [ - 24443, - 19575 - ], - "maxPoints": 2 - }, - { - "fieldName": "pathfinding", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 19559, - 19560 - ], - "maxPoints": 2 - }, - { - "fieldName": "aspectMastery", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 53265 - ], - "maxPoints": 1 - }, - { - "fieldName": "unleashedFury", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 19616, - 19617, - 19618, - 19619, - 19620 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedMendPet", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 19572, - 19573 - ], - "maxPoints": 2 - }, - { - "fieldName": "ferocity", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 19598, - 19599, - 19600, - 19601, - 19602 - ], - "maxPoints": 5 - }, - { - "fieldName": "spiritBond", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 19578, - 20895 - ], - "maxPoints": 2 - }, - { - "fieldName": "intimidation", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 19577 - ], - "maxPoints": 1 - }, - { - "fieldName": "bestialDiscipline", - "location": { - "rowIdx": 4, - "colIdx": 3 - }, - "spellIds": [ - 19590, - 19592 - ], - "maxPoints": 2 - }, - { - "fieldName": "animalHandler", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 34453, - 34454 - ], - "maxPoints": 2 - }, - { - "fieldName": "frenzy", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 19621, - 19622, - 19623, - 19624, - 19625 - ], - "maxPoints": 5, - "prereqLocation": { - "rowIdx": 3, - "colIdx": 2 - } - }, - { - "fieldName": "ferociousInspiration", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 34455, - 34459, - 34460 - ], - "maxPoints": 3 - }, - { - "fieldName": "bestialWrath", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 19574 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "catlikeReflexes", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 34462, - 34464, - 34465 - ], - "maxPoints": 3 - }, - { - "fieldName": "invigoration", - "location": { - "rowIdx": 7, - "colIdx": 0 - }, - "spellIds": [ - 53252, - 53253 - ], - "maxPoints": 2, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 0 - } - }, - { - "fieldName": "serpentsSwiftness", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 34466, - 34467, - 34468, - 34469, - 34470 - ], - "maxPoints": 5 - }, - { - "fieldName": "longevity", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 53262, - 53263, - 53264 - ], - "maxPoints": 3 - }, - { - "fieldName": "theBeastWithin", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 34692 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "cobraStrikes", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 53256, - 53259, - 53260 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 7, - "colIdx": 2 - } - }, - { - "fieldName": "kindredSpirits", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 56314, - 56315, - 56316, - 56317, - 56318 - ], - "maxPoints": 5 - }, - { - "fieldName": "beastMastery", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 53270 - ], - "maxPoints": 1 - } - ] - }, - { - "name": "Marksmanship", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/363.jpg", - "talents": [ - { - "fieldName": "improvedConcussiveShot", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 19407, - 19412 - ], - "maxPoints": 2 - }, - { - "fieldName": "focusedAim", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 53620, - 53621, - 53622 - ], - "maxPoints": 3 - }, - { - "fieldName": "lethalShots", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 19426, - 19427, - 19429, - 19430, - 19431 - ], - "maxPoints": 5 - }, - { - "fieldName": "carefulAim", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 34482, - 34483, - 34484 - ], - "maxPoints": 3 - }, - { - "fieldName": "improvedHuntersMark", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 19421, - 19422, - 19423 - ], - "maxPoints": 3 - }, - { - "fieldName": "mortalShots", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 19485, - 19487, - 19488, - 19489, - 19490 - ], - "maxPoints": 5 - }, - { - "fieldName": "goForTheThroat", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 34950, - 34954 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedArcaneShot", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 19454, - 19455, - 19456 - ], - "maxPoints": 3 - }, - { - "fieldName": "aimedShot", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 19434 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 1, - "colIdx": 2 - } - }, - { - "fieldName": "rapidKilling", - "location": { - "rowIdx": 2, - "colIdx": 3 - }, - "spellIds": [ - 34948, - 34949 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedStings", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 19464, - 19465, - 19466 - ], - "maxPoints": 3 - }, - { - "fieldName": "efficiency", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 19416, - 19417, - 19418, - 19419, - 19420 - ], - "maxPoints": 5 - }, - { - "fieldName": "concussiveBarrage", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 35100, - 35102 - ], - "maxPoints": 2 - }, - { - "fieldName": "readiness", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 23989 - ], - "maxPoints": 1 - }, - { - "fieldName": "barrage", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 19461, - 19462, - 24691 - ], - "maxPoints": 3 - }, - { - "fieldName": "combatExperience", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 34475, - 34476 - ], - "maxPoints": 2 - }, - { - "fieldName": "rangedWeaponSpecialization", - "location": { - "rowIdx": 5, - "colIdx": 3 - }, - "spellIds": [ - 19507, - 19508, - 19509 - ], - "maxPoints": 3 - }, - { - "fieldName": "piercingShots", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 53234, - 53237, - 53238 - ], - "maxPoints": 3 - }, - { - "fieldName": "trueshotAura", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 19506 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "improvedBarrage", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 35104, - 35110, - 35111 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 2 - } - }, - { - "fieldName": "masterMarksman", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 34485, - 34486, - 34487, - 34488, - 34489 - ], - "maxPoints": 5 - }, - { - "fieldName": "rapidRecuperation", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 53228, - 53232 - ], - "maxPoints": 2 - }, - { - "fieldName": "wildQuiver", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 53215, - 53216, - 53217 - ], - "maxPoints": 3 - }, - { - "fieldName": "silencingShot", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 34490 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 7, - "colIdx": 1 - } - }, - { - "fieldName": "improvedSteadyShot", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 53221, - 53222, - 53224 - ], - "maxPoints": 3 - }, - { - "fieldName": "markedForDeath", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 53241, - 53243, - 53244, - 53245, - 53246 - ], - "maxPoints": 5 - }, - { - "fieldName": "chimeraShot", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 53209 - ], - "maxPoints": 1 - } - ] - }, - { - "name": "Survival", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/362.jpg", - "talents": [ - { - "fieldName": "improvedTracking", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 52783, - 52785, - 52786, - 52787, - 52788 - ], - "maxPoints": 5 - }, - { - "fieldName": "hawkEye", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 19498, - 19499, - 19500 - ], - "maxPoints": 3 - }, - { - "fieldName": "savageStrikes", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 19159, - 19160 - ], - "maxPoints": 2 - }, - { - "fieldName": "surefooted", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 19290, - 19294, - 24283 - ], - "maxPoints": 3 - }, - { - "fieldName": "entrapment", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 19184, - 19387, - 19388 - ], - "maxPoints": 3 - }, - { - "fieldName": "trapMastery", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 19376, - 63457, - 63458 - ], - "maxPoints": 3 - }, - { - "fieldName": "survivalInstincts", - "location": { - "rowIdx": 1, - "colIdx": 3 - }, - "spellIds": [ - 34494, - 34496 - ], - "maxPoints": 2 - }, - { - "fieldName": "survivalist", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 19255, - 19256, - 19257, - 19258, - 19259 - ], - "maxPoints": 5 - }, - { - "fieldName": "scatterShot", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 19503 - ], - "maxPoints": 1 - }, - { - "fieldName": "deflection", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 19295, - 19297, - 19298 - ], - "maxPoints": 3 - }, - { - "fieldName": "survivalTactics", - "location": { - "rowIdx": 2, - "colIdx": 3 - }, - "spellIds": [ - 19286, - 19287 - ], - "maxPoints": 2 - }, - { - "fieldName": "tNT", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 56333, - 56336, - 56337 - ], - "maxPoints": 3 - }, - { - "fieldName": "lockAndLoad", - "location": { - "rowIdx": 3, - "colIdx": 3 - }, - "spellIds": [ - 56342, - 56343, - 56344 - ], - "maxPoints": 3 - }, - { - "fieldName": "hunterVsWild", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 56339, - 56340, - 56341 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 2, - "colIdx": 0 - } - }, - { - "fieldName": "killerInstinct", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 19370, - 19371, - 19373 - ], - "maxPoints": 3 - }, - { - "fieldName": "counterattack", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 19306 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 2, - "colIdx": 2 - } - }, - { - "fieldName": "lightningReflexes", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 19168, - 19180, - 19181, - 24296, - 24297 - ], - "maxPoints": 5 - }, - { - "fieldName": "resourcefulness", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 34491, - 34492, - 34493 - ], - "maxPoints": 3 - }, - { - "fieldName": "exposeWeakness", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 34500, - 34502, - 34503 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 5, - "colIdx": 0 - } - }, - { - "fieldName": "wyvernSting", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 19386 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "thrillOfTheHunt", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 34497, - 34498, - 34499 - ], - "maxPoints": 3 - }, - { - "fieldName": "masterTactician", - "location": { - "rowIdx": 7, - "colIdx": 0 - }, - "spellIds": [ - 34506, - 34507, - 34508, - 34838, - 34839 - ], - "maxPoints": 5 - }, - { - "fieldName": "noxiousStings", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 53295, - 53296, - 53297 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "pointOfNoEscape", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 53298, - 53299 - ], - "maxPoints": 2 - }, - { - "fieldName": "blackArrow", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 3674 - ], - "maxPoints": 1 - }, - { - "fieldName": "sniperTraining", - "location": { - "rowIdx": 8, - "colIdx": 3 - }, - "spellIds": [ - 53302, - 53303, - 53304 - ], - "maxPoints": 3 - }, - { - "fieldName": "huntingParty", - "location": { - "rowIdx": 9, - "colIdx": 2 - }, - "spellIds": [ - 53290, - 53291, - 53292 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 2 - } - }, - { - "fieldName": "explosiveShot", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 53301 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 8, - "colIdx": 1 - } - } - ] - } -]); +import HunterTalentJson from './trees/hunter.json'; + +export const hunterTalentsConfig: TalentsConfig = newTalentsConfig(HunterTalentJson); export const hunterGlyphsConfig: GlyphsConfig = { majorGlyphs: { diff --git a/ui/core/talents/hunter_pet.ts b/ui/core/talents/hunter_pet.ts index 555f22dcca..b62dab668b 100644 --- a/ui/core/talents/hunter_pet.ts +++ b/ui/core/talents/hunter_pet.ts @@ -13,6 +13,10 @@ import { protoToTalentString, talentStringToProto } from './factory.js'; import * as InputHelpers from '../components/input_helpers.js'; import { SimUI } from '../sim_ui.js'; +import HunterPetCunningJson from './trees/hunter_cunning.json' +import HunterPetFerocityJson from './trees/hunter_ferocity.json' +import HunterPetTenacityJson from './trees/hunter_tenacity.json' + export function makePetTypeInputConfig(includeLabel: boolean): InputHelpers.TypedIconEnumPickerConfig, PetType> { return InputHelpers.makeSpecOptionsEnumIconInput({ fieldName: 'petType', @@ -309,617 +313,9 @@ export const tenacityBMDefault: HunterPetTalents = HunterPetTalents.create({ }); const defaultBMTalents = [cunningBMDefault, ferocityBMDefault, tenacityBMDefault]; -const cunningPetTalentsConfig: TalentsConfig = newTalentsConfig([ - { - name: 'Cunning', - backgroundUrl: 'https://wotlkdb.com/static/images/wow/hunterpettalents/bg_3.jpg?85', - talents: [ - { - fieldName: 'cobraReflexes', - location: { - rowIdx: 0, - colIdx: 0, - }, - spellIds: [61682], - maxPoints: 2, - }, - { - fieldName: 'dive', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [23145], - maxPoints: 1, - }, - { - fieldName: 'greatStamina', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [61686], - maxPoints: 3, - }, - { - fieldName: 'naturalArmor', - location: { - rowIdx: 0, - colIdx: 3, - }, - spellIds: [61689], - maxPoints: 2, - }, - { - fieldName: 'boarsSpeed', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [19596], - maxPoints: 1, - }, - { - fieldName: 'mobility', - location: { - rowIdx: 1, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [53554], - maxPoints: 2, - }, - { - fieldName: 'owlsFocus', - location: { - rowIdx: 1, - colIdx: 2, - }, - spellIds: [53514, 53516], - maxPoints: 2, - }, - { - fieldName: 'spikedCollar', - location: { - rowIdx: 1, - colIdx: 3, - }, - spellIds: [53182], - maxPoints: 3, - }, - { - fieldName: 'cullingTheHerd', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [61680, 61681, 52858], - maxPoints: 3, - }, - { - fieldName: 'lionhearted', - location: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [53409, 53411], - maxPoints: 2, - }, - { - fieldName: 'carrionFeeder', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [54044], - maxPoints: 1, - }, - { - fieldName: 'greatResistance', - location: { - rowIdx: 3, - colIdx: 1, - }, - spellIds: [53427, 53429], - maxPoints: 3, - }, - { - fieldName: 'cornered', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [52234, 53497], - maxPoints: 2, - }, - { - fieldName: 'feedingFrenzy', - location: { - rowIdx: 3, - colIdx: 3, - }, - prereqLocation: { - rowIdx: 1, - colIdx: 3, - }, - spellIds: [53511], - maxPoints: 2, - }, - { - fieldName: 'wolverineBite', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [53508], - maxPoints: 1, - }, - { - fieldName: 'roarOfRecovery', - location: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [53517], - maxPoints: 1, - }, - { - fieldName: 'bullheaded', - location: { - rowIdx: 4, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [53490], - maxPoints: 1, - }, - { - fieldName: 'graceOfTheMantis', - location: { - rowIdx: 4, - colIdx: 3, - }, - spellIds: [53450], - maxPoints: 2, - }, - { - fieldName: 'wildHunt', - location: { - rowIdx: 5, - colIdx: 0, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [62758, 62762], - maxPoints: 2, - }, - { - fieldName: 'roarOfSacrifice', - location: { - rowIdx: 5, - colIdx: 3, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 3, - }, - spellIds: [53480], - maxPoints: 1, - }, - ], - }, -]); -const ferocityPetTalentsConfig: TalentsConfig = newTalentsConfig([ - { - name: 'Ferocity', - backgroundUrl: 'https://wotlkdb.com/static/images/wow/hunterpettalents/bg_1.jpg?85', - talents: [ - { - fieldName: 'cobraReflexes', - location: { - rowIdx: 0, - colIdx: 0, - }, - spellIds: [61682], - maxPoints: 2, - }, - { - fieldName: 'dive', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [23145], - maxPoints: 1, - }, - { - fieldName: 'greatStamina', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [61686], - maxPoints: 3, - }, - { - fieldName: 'naturalArmor', - location: { - rowIdx: 0, - colIdx: 3, - }, - spellIds: [61689], - maxPoints: 2, - }, - { - fieldName: 'improvedCower', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [53180], - maxPoints: 2, - }, - { - fieldName: 'bloodthirsty', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [53186], - maxPoints: 2, - }, - { - fieldName: 'spikedCollar', - location: { - rowIdx: 1, - colIdx: 2, - }, - spellIds: [53182], - maxPoints: 3, - }, - { - fieldName: 'boarsSpeed', - location: { - rowIdx: 1, - colIdx: 3, - }, - spellIds: [19596], - maxPoints: 1, - }, - { - fieldName: 'cullingTheHerd', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [61680, 61681, 52858], - maxPoints: 3, - }, - { - fieldName: 'lionhearted', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [53409, 53411], - maxPoints: 2, - }, - { - fieldName: 'charge', - location: { - rowIdx: 2, - colIdx: 3, - }, - spellIds: [61685], - maxPoints: 1, - }, - { - fieldName: 'heartOfThePheonix', - location: { - rowIdx: 3, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [55709], - maxPoints: 1, - }, - { - fieldName: 'spidersBite', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [53203], - maxPoints: 3, - }, - { - fieldName: 'greatResistance', - location: { - rowIdx: 3, - colIdx: 3, - }, - spellIds: [53427, 53429], - maxPoints: 3, - }, - { - fieldName: 'rabid', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [53401], - maxPoints: 1, - }, - { - fieldName: 'lickYourWounds', - location: { - rowIdx: 4, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 3, - colIdx: 1, - }, - spellIds: [53426], - maxPoints: 1, - }, - { - fieldName: 'callOfTheWild', - location: { - rowIdx: 4, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [53434], - maxPoints: 1, - }, - { - fieldName: 'sharkAttack', - location: { - rowIdx: 5, - colIdx: 0, - }, - spellIds: [62759], - maxPoints: 2, - }, - { - fieldName: 'wildHunt', - location: { - rowIdx: 5, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [62758, 62762], - maxPoints: 2, - }, - ], - }, -]); -const tenacityPetTalentsConfig: TalentsConfig = newTalentsConfig([ - { - name: 'Tenacity', - backgroundUrl: 'https://wotlkdb.com/static/images/wow/hunterpettalents/bg_2.jpg?85', - talents: [ - { - fieldName: 'cobraReflexes', - location: { - rowIdx: 0, - colIdx: 0, - }, - spellIds: [61682], - maxPoints: 2, - }, - { - fieldName: 'charge', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [61685], - maxPoints: 1, - }, - { - fieldName: 'greatStamina', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [61686], - maxPoints: 3, - }, - { - fieldName: 'naturalArmor', - location: { - rowIdx: 0, - colIdx: 3, - }, - spellIds: [61689], - maxPoints: 2, - }, - { - fieldName: 'spikedCollar', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [53182], - maxPoints: 3, - }, - { - fieldName: 'boarsSpeed', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [19596], - maxPoints: 1, - }, - { - fieldName: 'bloodOfTheRhino', - location: { - rowIdx: 1, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [53481], - maxPoints: 2, - }, - { - fieldName: 'petBarding', - location: { - rowIdx: 1, - colIdx: 3, - }, - prereqLocation: { - rowIdx: 0, - colIdx: 3, - }, - spellIds: [53175], - maxPoints: 2, - }, - { - fieldName: 'cullingTheHerd', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [61680, 61681, 52858], - maxPoints: 3, - }, - { - fieldName: 'guardDog', - location: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [53178], - maxPoints: 2, - }, - { - fieldName: 'lionhearted', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [53409, 53411], - maxPoints: 2, - }, - { - fieldName: 'thunderstomp', - location: { - rowIdx: 2, - colIdx: 3, - }, - spellIds: [63900], - maxPoints: 1, - }, - { - fieldName: 'graceOfTheMantis', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [53450], - maxPoints: 2, - }, - { - fieldName: 'greatResistance', - location: { - rowIdx: 3, - colIdx: 3, - }, - spellIds: [53427, 53429], - maxPoints: 3, - }, - { - fieldName: 'lastStand', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [53478], - maxPoints: 1, - }, - { - fieldName: 'taunt', - location: { - rowIdx: 4, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [53477], - maxPoints: 1, - }, - { - fieldName: 'roarOfSacrifice', - location: { - rowIdx: 4, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [53480], - maxPoints: 1, - }, - { - fieldName: 'intervene', - location: { - rowIdx: 4, - colIdx: 3, - }, - spellIds: [53476], - maxPoints: 1, - }, - { - fieldName: 'silverback', - location: { - rowIdx: 5, - colIdx: 1, - }, - spellIds: [62764], - maxPoints: 2, - }, - { - fieldName: 'wildHunt', - location: { - rowIdx: 5, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [62758, 62762], - maxPoints: 2, - }, - ], - }, -]); +const cunningPetTalentsConfig: TalentsConfig = newTalentsConfig(HunterPetCunningJson); +const ferocityPetTalentsConfig: TalentsConfig = newTalentsConfig(HunterPetFerocityJson); +const tenacityPetTalentsConfig: TalentsConfig = newTalentsConfig(HunterPetTenacityJson); const petTalentsConfig = [ cunningPetTalentsConfig, diff --git a/ui/core/talents/mage.ts b/ui/core/talents/mage.ts index 94337c31ae..e2dc880fc5 100644 --- a/ui/core/talents/mage.ts +++ b/ui/core/talents/mage.ts @@ -3,1154 +3,9 @@ import { MageTalents, MageMajorGlyph, MageMinorGlyph } from '../proto/mage.js'; import { GlyphsConfig } from './glyphs_picker.js'; import { TalentsConfig, newTalentsConfig } from './talents_picker.js'; -export const mageTalentsConfig: TalentsConfig = newTalentsConfig([ - { - "name": "Arcane", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/81.jpg", - "talents": [ - { - "fieldName": "arcaneSubtlety", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 11210, - 12592 - ], - "maxPoints": 2 - }, - { - "fieldName": "arcaneFocus", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 11222, - 12839, - 12840 - ], - "maxPoints": 3 - }, - { - "fieldName": "arcaneStability", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 11237, - 12463, - 12464, - 16769, - 16770 - ], - "maxPoints": 5 - }, - { - "fieldName": "arcaneFortitude", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 28574, - 54658, - 54659 - ], - "maxPoints": 3 - }, - { - "fieldName": "magicAbsorption", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 29441, - 29444 - ], - "maxPoints": 2 - }, - { - "fieldName": "arcaneConcentration", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 11213, - 12574, - 12575, - 12576, - 12577 - ], - "maxPoints": 5 - }, - { - "fieldName": "magicAttunement", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 11247, - 12606 - ], - "maxPoints": 2 - }, - { - "fieldName": "spellImpact", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 11242, - 12467, - 12469 - ], - "maxPoints": 3 - }, - { - "fieldName": "studentOfTheMind", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 44397, - 44398, - 44399 - ], - "maxPoints": 3 - }, - { - "fieldName": "focusMagic", - "location": { - "rowIdx": 2, - "colIdx": 3 - }, - "spellIds": [ - 54646 - ], - "maxPoints": 1 - }, - { - "fieldName": "arcaneShielding", - "location": { - "rowIdx": 3, - "colIdx": 0 - }, - "spellIds": [ - 11252, - 12605 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedCounterspell", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 11255, - 12598 - ], - "maxPoints": 2 - }, - { - "fieldName": "arcaneMeditation", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 18462, - 18463, - 18464 - ], - "maxPoints": 3 - }, - { - "fieldName": "tormentTheWeak", - "location": { - "rowIdx": 3, - "colIdx": 3 - }, - "spellIds": [ - 29447, - 55339, - 55340 - ], - "maxPoints": 3 - }, - { - "fieldName": "improvedBlink", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 31569, - 31570 - ], - "maxPoints": 2 - }, - { - "fieldName": "presenceOfMind", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 12043 - ], - "maxPoints": 1, - }, - { - "fieldName": "arcaneMind", - "location": { - "rowIdx": 4, - "colIdx": 3 - }, - "spellIds": [ - 11232, - 12500, - 12501, - 12502, - 12503 - ], - "maxPoints": 5 - }, - { - "fieldName": "prismaticCloak", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 31574, - 31575, - 54354 - ], - "maxPoints": 3 - }, - { - "fieldName": "arcaneInstability", - "location": { - "rowIdx": 5, - "colIdx": 1 - }, - "spellIds": [ - 15058, - 15059, - 15060 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "arcanePotency", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 31571, - 31572 - ], - "maxPoints": 2 - }, - { - "fieldName": "arcaneEmpowerment", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 31579, - 31582, - 31583 - ], - "maxPoints": 3 - }, - { - "fieldName": "arcanePower", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 12042 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 5, - "colIdx": 1 - } - }, - { - "fieldName": "incantersAbsorption", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 44394, - 44395, - 44396 - ], - "maxPoints": 3 - }, - { - "fieldName": "arcaneFlows", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 44378, - 44379 - ], - "maxPoints": 2, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "mindMastery", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 31584, - 31585, - 31586, - 31587, - 31588 - ], - "maxPoints": 5 - }, - { - "fieldName": "slow", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 31589 - ], - "maxPoints": 1 - }, - { - "fieldName": "missileBarrage", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 44404, - 54486, - 54488, - 54489, - 54490 - ], - "maxPoints": 5 - }, - { - "fieldName": "netherwindPresence", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 44400, - 44402, - 44403 - ], - "maxPoints": 3 - }, - { - "fieldName": "spellPower", - "location": { - "rowIdx": 9, - "colIdx": 2 - }, - "spellIds": [ - 35578, - 35581 - ], - "maxPoints": 2 - }, - { - "fieldName": "arcaneBarrage", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 44425 - ], - "maxPoints": 1 - } - ] - }, - { - "name": "Fire", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/41.jpg", - "talents": [ - { - "fieldName": "improvedFireBlast", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 11078, - 11080 - ], - "maxPoints": 2 - }, - { - "fieldName": "incineration", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 18459, - 18460, - 54734 - ], - "maxPoints": 3 - }, - { - "fieldName": "improvedFireball", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 11069, - 12338, - 12339, - 12340, - 12341 - ], - "maxPoints": 5 - }, - { - "fieldName": "ignite", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 11119, - 11120, - 12846, - 12847, - 12848 - ], - "maxPoints": 5 - }, - { - "fieldName": "burningDetermination", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 54747, - 54749 - ], - "maxPoints": 2 - }, - { - "fieldName": "worldInFlames", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 11108, - 12349, - 12350 - ], - "maxPoints": 3 - }, - { - "fieldName": "flameThrowing", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 11100, - 12353 - ], - "maxPoints": 2 - }, - { - "fieldName": "impact", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 11103, - 12357, - 12358 - ], - "maxPoints": 3 - }, - { - "fieldName": "pyroblast", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 11366 - ], - "maxPoints": 1 - }, - { - "fieldName": "burningSoul", - "location": { - "rowIdx": 2, - "colIdx": 3 - }, - "spellIds": [ - 11083, - 12351 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedScorch", - "location": { - "rowIdx": 3, - "colIdx": 0 - }, - "spellIds": [ - 11095, - 12872, - 12873 - ], - "maxPoints": 3 - }, - { - "fieldName": "moltenShields", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 11094, - 13043 - ], - "maxPoints": 2 - }, - { - "fieldName": "masterOfElements", - "location": { - "rowIdx": 3, - "colIdx": 3 - }, - "spellIds": [ - 29074, - 29075, - 29076 - ], - "maxPoints": 3 - }, - { - "fieldName": "playingWithFire", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 31638, - 31639, - 31640 - ], - "maxPoints": 3 - }, - { - "fieldName": "criticalMass", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 11115, - 11367, - 11368 - ], - "maxPoints": 3 - }, - { - "fieldName": "blastWave", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 11113 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 2, - "colIdx": 2 - } - }, - { - "fieldName": "blazingSpeed", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 31641, - 31642 - ], - "maxPoints": 2 - }, - { - "fieldName": "firePower", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 11124, - 12378, - 12398, - 12399, - 12400 - ], - "maxPoints": 5 - }, - { - "fieldName": "pyromaniac", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 34293, - 34295, - 34296 - ], - "maxPoints": 3 - }, - { - "fieldName": "combustion", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 11129 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "moltenFury", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 31679, - 31680 - ], - "maxPoints": 2 - }, - { - "fieldName": "fieryPayback", - "location": { - "rowIdx": 7, - "colIdx": 0 - }, - "spellIds": [ - 64353, - 64357 - ], - "maxPoints": 2 - }, - { - "fieldName": "empoweredFire", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 31656, - 31657, - 31658 - ], - "maxPoints": 3 - }, - { - "fieldName": "firestarter", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 44442, - 44443 - ], - "maxPoints": 2, - "prereqLocation": { - "rowIdx": 8, - "colIdx": 1 - } - }, - { - "fieldName": "dragonsBreath", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 31661 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "hotStreak", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 44445, - 44446, - 44448 - ], - "maxPoints": 3 - }, - { - "fieldName": "burnout", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 44449, - 44469, - 44470, - 44471, - 44472 - ], - "maxPoints": 5 - }, - { - "fieldName": "livingBomb", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 44457 - ], - "maxPoints": 1 - } - ] - }, - { - "name": "Frost", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/61.jpg", - "talents": [ - { - "fieldName": "frostbite", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 11071, - 12496, - 12497 - ], - "maxPoints": 3 - }, - { - "fieldName": "improvedFrostbolt", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 11070, - 12473, - 16763, - 16765, - 16766 - ], - "maxPoints": 5 - }, - { - "fieldName": "iceFloes", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 31670, - 31672, - 55094 - ], - "maxPoints": 3 - }, - { - "fieldName": "iceShards", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 11207, - 12672, - 15047 - ], - "maxPoints": 3 - }, - { - "fieldName": "frostWarding", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 11189, - 28332 - ], - "maxPoints": 2 - }, - { - "fieldName": "precision", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 29438, - 29439, - 29440 - ], - "maxPoints": 3 - }, - { - "fieldName": "permafrost", - "location": { - "rowIdx": 1, - "colIdx": 3 - }, - "spellIds": [ - 11175, - 12569, - 12571 - ], - "maxPoints": 3 - }, - { - "fieldName": "piercingIce", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 11151, - 12952, - 12953 - ], - "maxPoints": 3 - }, - { - "fieldName": "icyVeins", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 12472 - ], - "maxPoints": 1 - }, - { - "fieldName": "improvedBlizzard", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 11185, - 12487, - 12488 - ], - "maxPoints": 3 - }, - { - "fieldName": "arcticReach", - "location": { - "rowIdx": 3, - "colIdx": 0 - }, - "spellIds": [ - 16757, - 16758 - ], - "maxPoints": 2 - }, - { - "fieldName": "frostChanneling", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 11160, - 12518, - 12519 - ], - "maxPoints": 3 - }, - { - "fieldName": "shatter", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 11170, - 12982, - 12983 - ], - "maxPoints": 3 - }, - { - "fieldName": "coldSnap", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 11958 - ], - "maxPoints": 1 - }, - { - "fieldName": "improvedConeOfCold", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 11190, - 12489, - 12490 - ], - "maxPoints": 3 - }, - { - "fieldName": "frozenCore", - "location": { - "rowIdx": 4, - "colIdx": 3 - }, - "spellIds": [ - 31667, - 31668, - 31669 - ], - "maxPoints": 3 - }, - { - "fieldName": "coldAsIce", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 55091, - 55092 - ], - "maxPoints": 2 - }, - { - "fieldName": "wintersChill", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 11180, - 28592, - 28593 - ], - "maxPoints": 3 - }, - { - "fieldName": "shatteredBarrier", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 44745, - 54787 - ], - "maxPoints": 2, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "iceBarrier", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 11426 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "arcticWinds", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 31674, - 31675, - 31676, - 31677, - 31678 - ], - "maxPoints": 5 - }, - { - "fieldName": "empoweredFrostbolt", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 31682, - 31683 - ], - "maxPoints": 2 - }, - { - "fieldName": "fingersOfFrost", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 44543, - 44545 - ], - "maxPoints": 2 - }, - { - "fieldName": "brainFreeze", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 44546, - 44548, - 44549 - ], - "maxPoints": 3 - }, - { - "fieldName": "summonWaterElemental", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 31687 - ], - "maxPoints": 1 - }, - { - "fieldName": "enduringWinter", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 44557, - 44560, - 44561 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 8, - "colIdx": 1 - } - }, - { - "fieldName": "chilledToTheBone", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 44566, - 44567, - 44568, - 44570, - 44571 - ], - "maxPoints": 5 - }, - { - "fieldName": "deepFreeze", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 44572 - ], - "maxPoints": 1 - } - ] - } -]); +import MageTalentJson from './trees/mage.json'; + +export const mageTalentsConfig: TalentsConfig = newTalentsConfig(MageTalentJson); export const mageGlyphsConfig: GlyphsConfig = { majorGlyphs: { diff --git a/ui/core/talents/paladin.ts b/ui/core/talents/paladin.ts index 1aa06eda1d..918f667a7f 100644 --- a/ui/core/talents/paladin.ts +++ b/ui/core/talents/paladin.ts @@ -3,764 +3,9 @@ import { PaladinTalents, PaladinMajorGlyph, PaladinMinorGlyph } from '../proto/p import { GlyphsConfig } from './glyphs_picker.js'; import { TalentsConfig, newTalentsConfig } from './talents_picker.js'; -export const paladinTalentsConfig: TalentsConfig = newTalentsConfig([ - { - name: 'Holy', - backgroundUrl: 'https://wow.zamimg.com/images/wow/talents/backgrounds/classic/382.jpg', - talents: [ - { - fieldName: 'spiritualFocus', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [20205], - maxPoints: 5, - }, - { - fieldName: 'sealsOfThePure', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [20224, 20225, 20330], - maxPoints: 5, - }, - { - fieldName: 'healingLight', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [20237], - maxPoints: 3, - }, - { - fieldName: 'divineIntellect', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [20257], - maxPoints: 5, - }, - { - fieldName: 'unyieldingFaith', - location: { - rowIdx: 1, - colIdx: 2, - }, - spellIds: [9453, 25836], - maxPoints: 2, - }, - { - fieldName: 'auraMastery', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [31821], - maxPoints: 1, - }, - { - fieldName: 'illumination', - location: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [20210, 20212], - maxPoints: 5, - }, - { - fieldName: 'improvedLayOnHands', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [20234], - maxPoints: 2, - }, - { - fieldName: 'improvedConcentrationAura', - location: { - rowIdx: 3, - colIdx: 0, - }, - spellIds: [20254], - maxPoints: 3, - }, - { - fieldName: 'improvedBlessingOfWisdom', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [20244], - maxPoints: 2, - }, - { - fieldName: 'blessedHands', - location: { - rowIdx: 3, - colIdx: 3, - }, - spellIds: [53660], - maxPoints: 2, - }, - { - fieldName: 'pureOfHeart', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [31822], - maxPoints: 2, - }, - { - fieldName: 'divineFavor', - location: { - rowIdx: 4, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [20216], - maxPoints: 1, - }, - { - fieldName: 'sanctifiedLight', - location: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [20359], - maxPoints: 3, - }, - { - fieldName: 'purifyingPower', - location: { - rowIdx: 5, - colIdx: 0, - }, - spellIds: [31825], - maxPoints: 2, - }, - { - fieldName: 'holyPower', - location: { - rowIdx: 5, - colIdx: 2, - }, - spellIds: [5923, 5924, 5925, 5926, 25829], - maxPoints: 5, - }, - { - fieldName: 'lightsGrace', - location: { - rowIdx: 6, - colIdx: 0, - }, - spellIds: [31833, 31835], - maxPoints: 3, - }, - { - fieldName: 'holyShock', - location: { - rowIdx: 6, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [20473], - maxPoints: 1, - }, - { - fieldName: 'blessedLife', - location: { - rowIdx: 6, - colIdx: 2, - }, - spellIds: [31828], - maxPoints: 3, - }, - { - fieldName: 'sacredCleansing', - location: { - rowIdx: 7, - colIdx: 0, - }, - spellIds: [53551], - maxPoints: 3, - }, - { - fieldName: 'holyGuidance', - location: { - rowIdx: 7, - colIdx: 2, - }, - spellIds: [31837], - maxPoints: 5, - }, - { - fieldName: 'divineIllumination', - location: { - rowIdx: 8, - colIdx: 0, - }, - spellIds: [31842], - maxPoints: 1, - }, - { - fieldName: 'judgementsOfThePure', - location: { - rowIdx: 8, - colIdx: 2, - }, - spellIds: [53671, 53673, 54151, 54154, 54155], - maxPoints: 5, - }, - { - fieldName: 'infusionOfLight', - location: { - rowIdx: 9, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [53569, 53576], - maxPoints: 2, - }, - { - fieldName: 'enlightenedJudgements', - location: { - rowIdx: 9, - colIdx: 2, - }, - spellIds: [53556], - maxPoints: 2, - }, - { - fieldName: 'beaconOfLight', - location: { - rowIdx: 10, - colIdx: 1, - }, - spellIds: [53563], - maxPoints: 1, - }, - ], - }, - { - name: 'Protection', - backgroundUrl: 'https://wow.zamimg.com/images/wow/talents/backgrounds/classic/383.jpg', - talents: [ - { - fieldName: 'divinity', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [63646], - maxPoints: 5, - }, - { - fieldName: 'divineStrength', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [20262], - maxPoints: 5, - }, - { - fieldName: 'stoicism', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [31844, 31845, 53519], - maxPoints: 3, - }, - { - fieldName: 'guardiansFavor', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [20174], - maxPoints: 2, - }, - { - fieldName: 'anticipation', - location: { - rowIdx: 1, - colIdx: 2, - }, - spellIds: [20096], - maxPoints: 5, - }, - { - fieldName: 'divineSacrifice', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [64205], - maxPoints: 1, - }, - { - fieldName: 'improvedRighteousFury', - location: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [20468], - maxPoints: 3, - }, - { - fieldName: 'toughness', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [20143], - maxPoints: 5, - }, - { - fieldName: 'divineGuardian', - location: { - rowIdx: 3, - colIdx: 0, - }, - prereqLocation: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [53527, 53530], - maxPoints: 2, - }, - { - fieldName: 'improvedHammerOfJustice', - location: { - rowIdx: 3, - colIdx: 1, - }, - spellIds: [20487], - maxPoints: 2, - }, - { - fieldName: 'improvedDevotionAura', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [20138], - maxPoints: 3, - }, - { - fieldName: 'blessingOfSanctuary', - location: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [20911], - maxPoints: 1, - }, - { - fieldName: 'reckoning', - location: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [20177, 20179, 20181, 20180, 20182], - maxPoints: 5, - }, - { - fieldName: 'sacredDuty', - location: { - rowIdx: 5, - colIdx: 0, - }, - spellIds: [31848], - maxPoints: 2, - }, - { - fieldName: 'oneHandedWeaponSpecialization', - location: { - rowIdx: 5, - colIdx: 2, - }, - spellIds: [20196], - maxPoints: 3, - }, - { - fieldName: 'spiritualAttunement', - location: { - rowIdx: 6, - colIdx: 0, - }, - spellIds: [31785, 33776], - maxPoints: 2, - }, - { - fieldName: 'holyShield', - location: { - rowIdx: 6, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [20925], - maxPoints: 1, - }, - { - fieldName: 'ardentDefender', - location: { - rowIdx: 6, - colIdx: 2, - }, - spellIds: [31850], - maxPoints: 3, - }, - { - fieldName: 'redoubt', - location: { - rowIdx: 7, - colIdx: 0, - }, - spellIds: [20127, 20130, 20135], - maxPoints: 3, - }, - { - fieldName: 'combatExpertise', - location: { - rowIdx: 7, - colIdx: 2, - }, - spellIds: [31858], - maxPoints: 3, - }, - { - fieldName: 'touchedByTheLight', - location: { - rowIdx: 8, - colIdx: 0, - }, - spellIds: [53590], - maxPoints: 3, - }, - { - fieldName: 'avengersShield', - location: { - rowIdx: 8, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [31935], - maxPoints: 1, - }, - { - fieldName: 'guardedByTheLight', - location: { - rowIdx: 8, - colIdx: 2, - }, - spellIds: [53583, 53585], - maxPoints: 2, - }, - { - fieldName: 'shieldOfTheTemplar', - location: { - rowIdx: 9, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 8, - colIdx: 1, - }, - spellIds: [53709], - maxPoints: 3, - }, - { - fieldName: 'judgementsOfTheJust', - location: { - rowIdx: 9, - colIdx: 2, - }, - spellIds: [53695], - maxPoints: 2, - }, - { - fieldName: 'hammerOfTheRighteous', - location: { - rowIdx: 10, - colIdx: 1, - }, - spellIds: [53595], - maxPoints: 1, - }, - ], - }, - { - name: 'Retribution', - backgroundUrl: 'https://wow.zamimg.com/images/wow/talents/backgrounds/classic/381.jpg', - talents: [ - { - fieldName: 'deflection', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [20060], - maxPoints: 5, - }, - { - fieldName: 'benediction', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [20101], - maxPoints: 5, - }, - { - fieldName: 'improvedJudgements', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [25956], - maxPoints: 2, - }, - { - fieldName: 'heartOfTheCrusader', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [20335], - maxPoints: 3, - }, - { - fieldName: 'improvedBlessingOfMight', - location: { - rowIdx: 1, - colIdx: 2, - }, - spellIds: [20042, 20045], - maxPoints: 2, - }, - { - fieldName: 'vindication', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [9452, 26016], - maxPoints: 2, - }, - { - fieldName: 'conviction', - location: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [20117], - maxPoints: 5, - }, - { - fieldName: 'sealOfCommand', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [20375], - maxPoints: 1, - }, - { - fieldName: 'pursuitOfJustice', - location: { - rowIdx: 2, - colIdx: 3, - }, - spellIds: [26022], - maxPoints: 2, - }, - { - fieldName: 'eyeForAnEye', - location: { - rowIdx: 3, - colIdx: 0, - }, - spellIds: [9799, 25988], - maxPoints: 2, - }, - { - fieldName: 'sanctityOfBattle', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [32043, 35396, 35397], - maxPoints: 3, - }, - { - fieldName: 'crusade', - location: { - rowIdx: 3, - colIdx: 3, - }, - spellIds: [31866], - maxPoints: 3, - }, - { - fieldName: 'twoHandedWeaponSpecialization', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [20111], - maxPoints: 3, - }, - { - fieldName: 'sanctifiedRetribution', - location: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [31869], - maxPoints: 1, - }, - { - fieldName: 'vengeance', - location: { - rowIdx: 5, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [20049, 20056, 20057], - maxPoints: 3, - }, - { - fieldName: 'divinePurpose', - location: { - rowIdx: 5, - colIdx: 2, - }, - spellIds: [31871], - maxPoints: 2, - }, - { - fieldName: 'theArtOfWar', - location: { - rowIdx: 6, - colIdx: 0, - }, - spellIds: [53486, 53488], - maxPoints: 2, - }, - { - fieldName: 'repentance', - location: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [20066], - maxPoints: 1, - }, - { - fieldName: 'judgementsOfTheWise', - location: { - rowIdx: 6, - colIdx: 2, - }, - spellIds: [31876], - maxPoints: 3, - }, - { - fieldName: 'fanaticism', - location: { - rowIdx: 7, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [31879], - maxPoints: 3, - }, - { - fieldName: 'sanctifiedWrath', - location: { - rowIdx: 7, - colIdx: 2, - }, - spellIds: [53375], - maxPoints: 2, - }, - { - fieldName: 'swiftRetribution', - location: { - rowIdx: 8, - colIdx: 0, - }, - spellIds: [53379, 53484, 53648], - maxPoints: 3, - }, - { - fieldName: 'crusaderStrike', - location: { - rowIdx: 8, - colIdx: 1, - }, - spellIds: [35395], - maxPoints: 1, - }, - { - fieldName: 'sheathOfLight', - location: { - rowIdx: 8, - colIdx: 2, - }, - spellIds: [53501], - maxPoints: 3, - }, - { - fieldName: 'righteousVengeance', - location: { - rowIdx: 9, - colIdx: 1, - }, - spellIds: [53380], - maxPoints: 3, - }, - { - fieldName: 'divineStorm', - location: { - rowIdx: 10, - colIdx: 1, - }, - spellIds: [53385], - maxPoints: 1, - }, - ], - }, -]); +import PaladinTalentJson from './trees/paladin.json'; + +export const paladinTalentsConfig: TalentsConfig = newTalentsConfig(PaladinTalentJson); export const paladinGlyphsConfig: GlyphsConfig = { majorGlyphs: { diff --git a/ui/core/talents/priest.ts b/ui/core/talents/priest.ts index b55dfcab64..923c1ee0ee 100644 --- a/ui/core/talents/priest.ts +++ b/ui/core/talents/priest.ts @@ -3,1110 +3,9 @@ import { PriestTalents, PriestMajorGlyph, PriestMinorGlyph } from '../proto/prie import { GlyphsConfig } from './glyphs_picker.js'; import { TalentsConfig, newTalentsConfig } from './talents_picker.js'; -export const priestTalentsConfig: TalentsConfig = newTalentsConfig([ - { - name: "Discipline", - backgroundUrl: "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/201.jpg", - talents: [ - { - fieldName: "unbreakableWill", - location: { - rowIdx: 0, - colIdx: 1 - }, - spellIds: [ - 14522, - 14788, - 14789, - 14790, - 14791 - ], - maxPoints: 5 - }, - { - fieldName: "twinDisciplines", - location: { - rowIdx: 0, - colIdx: 2 - }, - spellIds: [ - 47586, - 47587, - 47588, - 52802, - 52803 - ], - maxPoints: 5 - }, - { - fieldName: "silentResolve", - location: { - rowIdx: 1, - colIdx: 0 - }, - spellIds: [ - 14523, - 14784, - 14785 - ], - maxPoints: 3 - }, - { - fieldName: "improvedInnerFire", - location: { - rowIdx: 1, - colIdx: 1 - }, - spellIds: [ - 14747, - 14770, - 14771 - ], - maxPoints: 3 - }, - { - fieldName: "improvedPowerWordFortitude", - location: { - rowIdx: 1, - colIdx: 2 - }, - spellIds: [ - 14749, - 14767 - ], - maxPoints: 2 - }, - { - fieldName: "martyrdom", - location: { - rowIdx: 1, - colIdx: 3 - }, - spellIds: [ - 14531, - 14774 - ], - maxPoints: 2 - }, - { - fieldName: "meditation", - location: { - rowIdx: 2, - colIdx: 0 - }, - spellIds: [ - 14521, - 14776, - 14777 - ], - maxPoints: 3 - }, - { - fieldName: "innerFocus", - location: { - rowIdx: 2, - colIdx: 1 - }, - spellIds: [ - 14751 - ], - maxPoints: 1 - }, - { - fieldName: "improvedPowerWordShield", - location: { - rowIdx: 2, - colIdx: 2 - }, - spellIds: [ - 14748, - 14768, - 14769 - ], - maxPoints: 3 - }, - { - fieldName: "absolution", - location: { - rowIdx: 3, - colIdx: 0 - }, - spellIds: [ - 33167, - 33171, - 33172 - ], - maxPoints: 3 - }, - { - fieldName: "mentalAgility", - location: { - rowIdx: 3, - colIdx: 1 - }, - spellIds: [ - 14520, - 14780, - 14781 - ], - maxPoints: 3 - }, - { - fieldName: "improvedManaBurn", - location: { - rowIdx: 3, - colIdx: 3 - }, - spellIds: [ - 14750, - 14772 - ], - maxPoints: 2 - }, - { - fieldName: "reflectiveShield", - location: { - rowIdx: 4, - colIdx: 0 - }, - spellIds: [ - 33201, - 33202 - ], - maxPoints: 2 - }, - { - fieldName: "mentalStrength", - location: { - rowIdx: 4, - colIdx: 1 - }, - spellIds: [ - 18551, - 18552, - 18553, - 18554, - 18555 - ], - maxPoints: 5 - }, - { - fieldName: "soulWarding", - location: { - rowIdx: 4, - colIdx: 2 - }, - spellIds: [ - 63574 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 2, - colIdx: 2 - } - }, - { - fieldName: "focusedPower", - location: { - rowIdx: 5, - colIdx: 0 - }, - spellIds: [ - 33186, - 33190 - ], - maxPoints: 2 - }, - { - fieldName: "enlightenment", - location: { - rowIdx: 5, - colIdx: 2 - }, - spellIds: [ - 34908, - 34909, - 34910 - ], - maxPoints: 3 - }, - { - fieldName: "focusedWill", - location: { - rowIdx: 6, - colIdx: 0 - }, - spellIds: [ - 45234, - 45243, - 45244 - ], - maxPoints: 3 - }, - { - fieldName: "powerInfusion", - location: { - rowIdx: 6, - colIdx: 1 - }, - spellIds: [ - 10060 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 4, - colIdx: 1 - } - }, - { - fieldName: "improvedFlashHeal", - location: { - rowIdx: 6, - colIdx: 2 - }, - spellIds: [ - 63504, - 63505, - 63506 - ], - maxPoints: 3 - }, - { - fieldName: "renewedHope", - location: { - rowIdx: 7, - colIdx: 0 - }, - spellIds: [ - 57470, - 57472 - ], - maxPoints: 2 - }, - { - fieldName: "rapture", - location: { - rowIdx: 7, - colIdx: 1 - }, - spellIds: [ - 47535, - 47536, - 47537 - ], - maxPoints: 3 - }, - { - fieldName: "aspiration", - location: { - rowIdx: 7, - colIdx: 2 - }, - spellIds: [ - 47507, - 47508 - ], - maxPoints: 2 - }, - { - fieldName: "divineAegis", - location: { - rowIdx: 8, - colIdx: 0 - }, - spellIds: [ - 47509, - 47511, - 47515 - ], - maxPoints: 3 - }, - { - fieldName: "painSuppression", - location: { - rowIdx: 8, - colIdx: 1 - }, - spellIds: [ - 33206 - ], - maxPoints: 1 - }, - { - fieldName: "grace", - location: { - rowIdx: 8, - colIdx: 2 - }, - spellIds: [ - 47516, - 47517 - ], - maxPoints: 2 - }, - { - fieldName: "borrowedTime", - location: { - rowIdx: 9, - colIdx: 1 - }, - spellIds: [ - 52795, - 52797, - 52798, - 52799, - 52800 - ], - maxPoints: 5 - }, - { - fieldName: "penance", - location: { - rowIdx: 10, - colIdx: 1 - }, - spellIds: [ - 47540 - ], - maxPoints: 1 - } - ] - }, - { - name: "Holy", - backgroundUrl: "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/202.jpg", - talents: [ - { - fieldName: "healingFocus", - location: { - rowIdx: 0, - colIdx: 0 - }, - spellIds: [ - 14913, - 15012 - ], - maxPoints: 2 - }, - { - fieldName: "improvedRenew", - location: { - rowIdx: 0, - colIdx: 1 - }, - spellIds: [ - 14908, - 15020, - 17191 - ], - maxPoints: 3 - }, - { - fieldName: "holySpecialization", - location: { - rowIdx: 0, - colIdx: 2 - }, - spellIds: [ - 14889, - 15008, - 15009, - 15010, - 15011 - ], - maxPoints: 5 - }, - { - fieldName: "spellWarding", - location: { - rowIdx: 1, - colIdx: 1 - }, - spellIds: [ - 27900, - 27901, - 27902, - 27903, - 27904 - ], - maxPoints: 5 - }, - { - fieldName: "divineFury", - location: { - rowIdx: 1, - colIdx: 2 - }, - spellIds: [ - 18530, - 18531, - 18533, - 18534, - 18535 - ], - maxPoints: 5 - }, - { - fieldName: "desperatePrayer", - location: { - rowIdx: 2, - colIdx: 0 - }, - spellIds: [ - 19236 - ], - maxPoints: 1 - }, - { - fieldName: "blessedRecovery", - location: { - rowIdx: 2, - colIdx: 1 - }, - spellIds: [ - 27811, - 27815, - 27816 - ], - maxPoints: 3 - }, - { - fieldName: "inspiration", - location: { - rowIdx: 2, - colIdx: 3 - }, - spellIds: [ - 14892, - 15362, - 15363 - ], - maxPoints: 3 - }, - { - fieldName: "holyReach", - location: { - rowIdx: 3, - colIdx: 0 - }, - spellIds: [ - 27789, - 27790 - ], - maxPoints: 2 - }, - { - fieldName: "improvedHealing", - location: { - rowIdx: 3, - colIdx: 1 - }, - spellIds: [ - 14912, - 15013, - 15014 - ], - maxPoints: 3 - }, - { - fieldName: "searingLight", - location: { - rowIdx: 3, - colIdx: 2 - }, - spellIds: [ - 14909, - 15017 - ], - maxPoints: 2, - "prereqLocation": { - rowIdx: 1, - colIdx: 2 - } - }, - { - fieldName: "healingPrayers", - location: { - rowIdx: 4, - colIdx: 0 - }, - spellIds: [ - 14911, - 15018 - ], - maxPoints: 2 - }, - { - fieldName: "spiritOfRedemption", - location: { - rowIdx: 4, - colIdx: 1 - }, - spellIds: [ - 20711 - ], - maxPoints: 1 - }, - { - fieldName: "spiritualGuidance", - location: { - rowIdx: 4, - colIdx: 2 - }, - spellIds: [ - 14901, - 15028, - 15029, - 15030, - 15031 - ], - maxPoints: 5 - }, - { - fieldName: "surgeOfLight", - location: { - rowIdx: 5, - colIdx: 0 - }, - spellIds: [ - 33150, - 33154 - ], - maxPoints: 2 - }, - { - fieldName: "spiritualHealing", - location: { - rowIdx: 5, - colIdx: 2 - }, - spellIds: [ - 14898, - 15349, - 15354, - 15355, - 15356 - ], - maxPoints: 5 - }, - { - fieldName: "holyConcentration", - location: { - rowIdx: 6, - colIdx: 0 - }, - spellIds: [ - 34753, - 34859, - 34860 - ], - maxPoints: 3 - }, - { - fieldName: "lightwell", - location: { - rowIdx: 6, - colIdx: 1 - }, - spellIds: [ - 724 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 4, - colIdx: 1 - } - }, - { - fieldName: "blessedResilience", - location: { - rowIdx: 6, - colIdx: 2 - }, - spellIds: [ - 33142, - 33145, - 33146 - ], - maxPoints: 3 - }, - { - fieldName: "bodyAndSoul", - location: { - rowIdx: 7, - colIdx: 0 - }, - spellIds: [ - 64127, - 64129 - ], - maxPoints: 2 - }, - { - fieldName: "empoweredHealing", - location: { - rowIdx: 7, - colIdx: 1 - }, - spellIds: [ - 33158, - 33159, - 33160, - 33161, - 33162 - ], - maxPoints: 5 - }, - { - fieldName: "serendipity", - location: { - rowIdx: 7, - colIdx: 2 - }, - spellIds: [ - 63730, - 63733, - 63737 - ], - maxPoints: 3 - }, - { - fieldName: "empoweredRenew", - location: { - rowIdx: 8, - colIdx: 0 - }, - spellIds: [ - 63534, - 63542, - 63543 - ], - maxPoints: 3 - }, - { - fieldName: "circleOfHealing", - location: { - rowIdx: 8, - colIdx: 1 - }, - spellIds: [ - 34861 - ], - maxPoints: 1 - }, - { - fieldName: "testOfFaith", - location: { - rowIdx: 8, - colIdx: 2 - }, - spellIds: [ - 47558, - 47559, - 47560 - ], - maxPoints: 3 - }, - { - fieldName: "divineProvidence", - location: { - rowIdx: 9, - colIdx: 1 - }, - spellIds: [ - 47562, - 47564, - 47565, - 47566, - 47567 - ], - maxPoints: 5 - }, - { - fieldName: "guardianSpirit", - location: { - rowIdx: 10, - colIdx: 1 - }, - spellIds: [ - 47788 - ], - maxPoints: 1 - } - ] - }, - { - name: "Shadow", - backgroundUrl: "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/203.jpg", - talents: [ - { - fieldName: "spiritTap", - location: { - rowIdx: 0, - colIdx: 0 - }, - spellIds: [ - 15270, - 15335, - 15336 - ], - maxPoints: 3 - }, - { - fieldName: "improvedSpiritTap", - location: { - rowIdx: 0, - colIdx: 1 - }, - spellIds: [ - 15337, - 15338 - ], - maxPoints: 2, - prereqLocation: { - rowIdx: 0, - colIdx: 0 - } - }, - { - fieldName: "darkness", - location: { - rowIdx: 0, - colIdx: 2 - }, - spellIds: [ - 15259, - 15307, - 15308, - 15309, - 15310 - ], - maxPoints: 5 - }, - { - fieldName: "shadowAffinity", - location: { - rowIdx: 1, - colIdx: 0 - }, - spellIds: [ - 15318, - 15272, - 15320 - ], - maxPoints: 3 - }, - { - fieldName: "improvedShadowWordPain", - location: { - rowIdx: 1, - colIdx: 1 - }, - spellIds: [ - 15275, - 15317 - ], - maxPoints: 2 - }, - { - fieldName: "shadowFocus", - location: { - rowIdx: 1, - colIdx: 2 - }, - spellIds: [ - 15260, - 15327, - 15328 - ], - maxPoints: 3 - }, - { - fieldName: "improvedPsychicScream", - location: { - rowIdx: 2, - colIdx: 0 - }, - spellIds: [ - 15392, - 15448 - ], - maxPoints: 2 - }, - { - fieldName: "improvedMindBlast", - location: { - rowIdx: 2, - colIdx: 1 - }, - spellIds: [ - 15273, - 15312, - 15313, - 15314, - 15316 - ], - maxPoints: 5 - }, - { - fieldName: "mindFlay", - location: { - rowIdx: 2, - colIdx: 2 - }, - spellIds: [ - 15407 - ], - maxPoints: 1 - }, - { - fieldName: "veiledShadows", - location: { - rowIdx: 3, - colIdx: 1 - }, - spellIds: [ - 15274, - 15311 - ], - maxPoints: 2 - }, - { - fieldName: "shadowReach", - location: { - rowIdx: 3, - colIdx: 2 - }, - spellIds: [ - 17322, - 17323 - ], - maxPoints: 2 - }, - { - fieldName: "shadowWeaving", - location: { - rowIdx: 3, - colIdx: 3 - }, - spellIds: [ - 15257, - 15331, - 15332 - ], - maxPoints: 3 - }, - { - fieldName: "silence", - location: { - rowIdx: 4, - colIdx: 0 - }, - spellIds: [ - 15487 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 2, - colIdx: 0 - } - }, - { - fieldName: "vampiricEmbrace", - location: { - rowIdx: 4, - colIdx: 1 - }, - spellIds: [ - 15286 - ], - maxPoints: 1 - }, - { - fieldName: "improvedVampiricEmbrace", - location: { - rowIdx: 4, - colIdx: 2 - }, - spellIds: [ - 27839, - 27840 - ], - maxPoints: 2, - "prereqLocation": { - rowIdx: 4, - colIdx: 1 - } - }, - { - fieldName: "focusedMind", - location: { - rowIdx: 4, - colIdx: 3 - }, - spellIds: [ - 33213, - 33214, - 33215 - ], - maxPoints: 3 - }, - { - fieldName: "mindMelt", - location: { - rowIdx: 5, - colIdx: 0 - }, - spellIds: [ - 14910, - 33371 - ], - maxPoints: 2 - }, - { - fieldName: "improvedDevouringPlague", - location: { - rowIdx: 5, - colIdx: 2 - }, - spellIds: [ - 63625, - 63626, - 63627 - ], - maxPoints: 3 - }, - { - fieldName: "shadowform", - location: { - rowIdx: 6, - colIdx: 1 - }, - spellIds: [ - 15473 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 4, - colIdx: 1 - } - }, - { - fieldName: "shadowPower", - location: { - rowIdx: 6, - colIdx: 2 - }, - spellIds: [ - 33221, - 33222, - 33223, - 33224, - 33225 - ], - maxPoints: 5 - }, - { - fieldName: "improvedShadowform", - location: { - rowIdx: 7, - colIdx: 0 - }, - spellIds: [ - 47569, - 47570 - ], - maxPoints: 2, - "prereqLocation": { - rowIdx: 6, - colIdx: 1 - } - }, - { - fieldName: "misery", - location: { - rowIdx: 7, - colIdx: 2 - }, - spellIds: [ - 33191, - 33192, - 33193 - ], - maxPoints: 3 - }, - { - fieldName: "psychicHorror", - location: { - rowIdx: 8, - colIdx: 0 - }, - spellIds: [ - 64044 - ], - maxPoints: 1 - }, - { - fieldName: "vampiricTouch", - location: { - rowIdx: 8, - colIdx: 1 - }, - spellIds: [ - 34914 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 6, - colIdx: 1 - } - }, - { - fieldName: "painAndSuffering", - location: { - rowIdx: 8, - colIdx: 2 - }, - spellIds: [ - 47580, - 47581, - 47582 - ], - maxPoints: 3 - }, - { - fieldName: "twistedFaith", - location: { - rowIdx: 9, - colIdx: 2 - }, - spellIds: [ - 47573, - 47577, - 47578, - 51166, - 51167 - ], - maxPoints: 5 - }, - { - fieldName: "dispersion", - location: { - rowIdx: 10, - colIdx: 1 - }, - spellIds: [ - 47585 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 8, - colIdx: 1 - } - } - ] - } -]); +import PriestTalentJson from './trees/priest.json'; + +export const priestTalentsConfig: TalentsConfig = newTalentsConfig(PriestTalentJson); export const priestGlyphsConfig: GlyphsConfig = { majorGlyphs: { diff --git a/ui/core/talents/rogue.ts b/ui/core/talents/rogue.ts index 912f9fcda8..8004c4fa86 100644 --- a/ui/core/talents/rogue.ts +++ b/ui/core/talents/rogue.ts @@ -3,813 +3,9 @@ import { RogueTalents, RogueMajorGlyph, RogueMinorGlyph } from '../proto/rogue.j import { GlyphsConfig } from './glyphs_picker.js'; import { TalentsConfig, newTalentsConfig } from './talents_picker.js'; -export const rogueTalentsConfig: TalentsConfig = newTalentsConfig([ - { - name: 'Assassination', - backgroundUrl: 'https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/182.jpg', - talents: [ - { - fieldName: 'improvedEviscerate', - location: { - rowIdx: 0, - colIdx: 0, - }, - spellIds: [14162], - maxPoints: 3, - }, - { - fieldName: 'remorselessAttacks', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [14144, 14148], - maxPoints: 2, - }, - { - fieldName: 'malice', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [14138], - maxPoints: 5, - }, - { - fieldName: 'ruthlessness', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [14156, 14160], - maxPoints: 3, - }, - { - fieldName: 'bloodSpatter', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [51632, 51633], - maxPoints: 2, - }, - { - fieldName: 'puncturingWounds', - location: { - rowIdx: 1, - colIdx: 3, - }, - spellIds: [13733, 13865], - maxPoints: 3, - }, - { - fieldName: 'vigor', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [14983], - maxPoints: 1, - }, - { - fieldName: 'improvedExposeArmor', - location: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [14168], - maxPoints: 2, - }, - { - fieldName: 'lethality', - location: { - rowIdx: 2, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [14128, 14132, 14135], - maxPoints: 5, - }, - { - fieldName: 'vilePoisons', - location: { - rowIdx: 3, - colIdx: 1, - }, - spellIds: [16513, 16514, 16515], - maxPoints: 3, - }, - { - fieldName: 'improvedPoisons', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [14113, 14114, 14115, 14116, 14117], - maxPoints: 5, - }, - { - fieldName: 'fleetFooted', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [31208], - maxPoints: 2, - }, - { - fieldName: 'coldBlood', - location: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [14177], - maxPoints: 1, - }, - { - fieldName: 'improvedKidneyShot', - location: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [14174], - maxPoints: 3, - }, - { - fieldName: 'quickRecovery', - location: { - rowIdx: 4, - colIdx: 3, - }, - spellIds: [31244], - maxPoints: 2, - }, - { - fieldName: 'sealFate', - location: { - rowIdx: 5, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [14186, 14190, 14193], - maxPoints: 5, - }, - { - fieldName: 'murder', - location: { - rowIdx: 5, - colIdx: 2, - }, - spellIds: [14158, 14159], - maxPoints: 2, - }, - { - fieldName: 'deadlyBrew', - location: { - rowIdx: 6, - colIdx: 0, - }, - spellIds: [51625, 51626], - maxPoints: 2, - }, - { - fieldName: 'overkill', - location: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [58426], - maxPoints: 1, - }, - { - fieldName: 'deadenedNerves', - location: { - rowIdx: 6, - colIdx: 2, - }, - spellIds: [31380, 31382, 31383], - maxPoints: 3, - }, - { - fieldName: 'focusedAttacks', - location: { - rowIdx: 7, - colIdx: 0, - }, - spellIds: [51634, 51635, 51636], - maxPoints: 3, - }, - { - fieldName: 'findWeakness', - location: { - rowIdx: 7, - colIdx: 2, - }, - spellIds: [31234, 31235, 31236], - maxPoints: 3, - }, - { - fieldName: 'masterPoisoner', - location: { - rowIdx: 8, - colIdx: 0, - }, - spellIds: [31226, 31227, 58410], - maxPoints: 3, - }, - { - fieldName: 'mutilate', - location: { - rowIdx: 8, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [1329], - maxPoints: 1, - }, - { - fieldName: 'turnTheTables', - location: { - rowIdx: 8, - colIdx: 2, - }, - spellIds: [51627, 51628, 51629], - maxPoints: 3, - }, - { - fieldName: 'cutToTheChase', - location: { - rowIdx: 9, - colIdx: 1, - }, - spellIds: [51664, 51665, 51666, 51667, 51668], - maxPoints: 5, - }, - { - fieldName: 'hungerForBlood', - location: { - rowIdx: 10, - colIdx: 1, - }, - spellIds: [51662], - maxPoints: 1, - }, - ], - }, - { - name: 'Combat', - backgroundUrl: 'https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/181.jpg', - talents: [ - { - fieldName: 'improvedGouge', - location: { - rowIdx: 0, - colIdx: 0, - }, - spellIds: [13741, 13793, 13792], - maxPoints: 3, - }, - { - fieldName: 'improvedSinisterStrike', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [13732, 13863], - maxPoints: 2, - }, - { - fieldName: 'dualWieldSpecialization', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [13715, 13848, 13849, 13851, 13852], - maxPoints: 5, - }, - { - fieldName: 'improvedSliceAndDice', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [14165, 14166], - maxPoints: 2, - }, - { - fieldName: 'deflection', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [13713, 13853, 13854], - maxPoints: 3, - }, - { - fieldName: 'precision', - location: { - rowIdx: 1, - colIdx: 3, - }, - spellIds: [13705, 13832, 13843, 13844, 13845], - maxPoints: 5, - }, - { - fieldName: 'endurance', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [13742, 13872], - maxPoints: 2, - }, - { - fieldName: 'riposte', - location: { - rowIdx: 2, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [14251], - maxPoints: 1, - }, - { - fieldName: 'closeQuartersCombat', - location: { - rowIdx: 2, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [13706, 13804, 13805, 13806, 13807], - maxPoints: 5, - }, - { - fieldName: 'improvedKick', - location: { - rowIdx: 3, - colIdx: 0, - }, - spellIds: [13754, 13867], - maxPoints: 2, - }, - { - fieldName: 'improvedSprint', - location: { - rowIdx: 3, - colIdx: 1, - }, - spellIds: [13743, 13875], - maxPoints: 2, - }, - { - fieldName: 'lightningReflexes', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [13712, 13788, 13789], - maxPoints: 3, - }, - { - fieldName: 'aggression', - location: { - rowIdx: 3, - colIdx: 3, - }, - spellIds: [18427, 18428, 18429, 61330, 61331], - maxPoints: 5, - }, - { - fieldName: 'maceSpecialization', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [13709, 13800, 13801, 13802, 13803], - maxPoints: 5, - }, - { - fieldName: 'bladeFlurry', - location: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [13877], - maxPoints: 1, - }, - { - fieldName: 'hackAndSlash', - location: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [13960, 13961, 13962, 13963, 13964], - maxPoints: 5, - }, - { - fieldName: 'weaponExpertise', - location: { - rowIdx: 5, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [30919], - maxPoints: 2, - }, - { - fieldName: 'bladeTwisting', - location: { - rowIdx: 5, - colIdx: 2, - }, - spellIds: [31124, 31126], - maxPoints: 2, - }, - { - fieldName: 'vitality', - location: { - rowIdx: 6, - colIdx: 0, - }, - spellIds: [31122, 31123, 61329], - maxPoints: 3, - }, - { - fieldName: 'adrenalineRush', - location: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [13750], - maxPoints: 1, - }, - { - fieldName: 'nervesOfSteel', - location: { - rowIdx: 6, - colIdx: 2, - }, - spellIds: [31130], - maxPoints: 2, - }, - { - fieldName: 'throwingSpecialization', - location: { - rowIdx: 7, - colIdx: 0, - }, - spellIds: [5952, 51679], - maxPoints: 2, - }, - { - fieldName: 'combatPotency', - location: { - rowIdx: 7, - colIdx: 2, - }, - spellIds: [35541, 35550, 35551, 35552, 35553], - maxPoints: 5, - }, - { - fieldName: 'unfairAdvantage', - location: { - rowIdx: 8, - colIdx: 0, - }, - spellIds: [51672, 51674], - maxPoints: 2, - }, - { - fieldName: 'surpriseAttacks', - location: { - rowIdx: 8, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [32601], - maxPoints: 1, - }, - { - fieldName: 'savageCombat', - location: { - rowIdx: 8, - colIdx: 2, - }, - spellIds: [51682, 58413], - maxPoints: 2, - }, - { - fieldName: 'preyOnTheWeak', - location: { - rowIdx: 9, - colIdx: 1, - }, - spellIds: [51685, 51686, 51687, 51688, 51689], - maxPoints: 5, - }, - { - fieldName: 'killingSpree', - location: { - rowIdx: 10, - colIdx: 1, - }, - spellIds: [51690], - maxPoints: 1, - }, - ], - }, - { - name: 'Subtlety', - backgroundUrl: 'https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/183.jpg', - talents: [ - { - fieldName: 'relentlessStrikes', - location: { - rowIdx: 0, - colIdx: 0, - }, - spellIds: [14179, 58422, 58423, 58424, 58425], - maxPoints: 5, - }, - { - fieldName: 'masterOfDeception', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [13958, 13970, 13971], - maxPoints: 3, - }, - { - fieldName: 'opportunity', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [14057, 14072], - maxPoints: 2, - }, - { - fieldName: 'sleightOfHand', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [30892, 30893], - maxPoints: 2, - }, - { - fieldName: 'dirtyTricks', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [14076, 14094], - maxPoints: 2, - }, - { - fieldName: 'camouflage', - location: { - rowIdx: 1, - colIdx: 2, - }, - spellIds: [13975, 14062, 14603], - maxPoints: 3, - }, - { - fieldName: 'elusiveness', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [13981, 14066], - maxPoints: 2, - }, - { - fieldName: 'ghostlyStrike', - location: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [14278], - maxPoints: 1, - }, - { - fieldName: 'serratedBlades', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [14171, 14172, 14173], - maxPoints: 3, - }, - { - fieldName: 'setup', - location: { - rowIdx: 3, - colIdx: 0, - }, - spellIds: [13983, 14070, 14071], - maxPoints: 3, - }, - { - fieldName: 'initiative', - location: { - rowIdx: 3, - colIdx: 1, - }, - spellIds: [13976, 13979, 13980], - maxPoints: 3, - }, - { - fieldName: 'improvedAmbush', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [14079, 14080], - maxPoints: 2, - }, - { - fieldName: 'heightenedSenses', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [30894, 30895], - maxPoints: 2, - }, - { - fieldName: 'preparation', - location: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [14185], - maxPoints: 1, - }, - { - fieldName: 'dirtyDeeds', - location: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [14082, 14083], - maxPoints: 2, - }, - { - fieldName: 'hemorrhage', - location: { - rowIdx: 4, - colIdx: 3, - }, - prereqLocation: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [16511], - maxPoints: 1, - }, - { - fieldName: 'masterOfSubtlety', - location: { - rowIdx: 5, - colIdx: 0, - }, - spellIds: [31221, 31222, 31223], - maxPoints: 3, - }, - { - fieldName: 'deadliness', - location: { - rowIdx: 5, - colIdx: 2, - }, - spellIds: [30902, 30903, 30904, 30905, 30906], - maxPoints: 5, - }, - { - fieldName: 'envelopingShadows', - location: { - rowIdx: 6, - colIdx: 0, - }, - spellIds: [31211, 31212, 31213], - maxPoints: 3, - }, - { - fieldName: 'premeditation', - location: { - rowIdx: 6, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [14183], - maxPoints: 1, - }, - { - fieldName: 'cheatDeath', - location: { - rowIdx: 6, - colIdx: 2, - }, - spellIds: [31228, 31229, 31230], - maxPoints: 3, - }, - { - fieldName: 'sinisterCalling', - location: { - rowIdx: 7, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [31216, 31217, 31218, 31219, 31220], - maxPoints: 5, - }, - { - fieldName: 'waylay', - location: { - rowIdx: 7, - colIdx: 2, - }, - spellIds: [51692, 51696], - maxPoints: 2, - }, - { - fieldName: 'honorAmongThieves', - location: { - rowIdx: 8, - colIdx: 0, - }, - spellIds: [51698, 51670, 51671], - maxPoints: 3, - }, - { - fieldName: 'shadowstep', - location: { - rowIdx: 8, - colIdx: 1, - }, - spellIds: [36554], - maxPoints: 1, - }, - { - fieldName: 'filthyTricks', - location: { - rowIdx: 8, - colIdx: 2, - }, - spellIds: [36554], - maxPoints: 2, - }, - { - fieldName: 'slaughterFromTheShadows', - location: { - rowIdx: 9, - colIdx: 1, - }, - spellIds: [51708, 51709, 51710, 51711, 51712], - maxPoints: 5, - }, - { - fieldName: 'shadowDance', - location: { - rowIdx: 10, - colIdx: 1, - }, - spellIds: [51713], - maxPoints: 1, - }, - ], - }, -]); +import RogueTalentJson from './trees/rogue.json'; + +export const rogueTalentsConfig: TalentsConfig = newTalentsConfig(RogueTalentJson); export const rogueGlyphsConfig: GlyphsConfig = { majorGlyphs: { diff --git a/ui/core/talents/shaman.ts b/ui/core/talents/shaman.ts index be6c7a3f36..b5d93c4ced 100644 --- a/ui/core/talents/shaman.ts +++ b/ui/core/talents/shaman.ts @@ -3,794 +3,9 @@ import { ShamanTalents, ShamanMajorGlyph, ShamanMinorGlyph } from '../proto/sham import { GlyphsConfig } from './glyphs_picker.js'; import { TalentsConfig, newTalentsConfig } from './talents_picker.js'; -export const shamanTalentsConfig: TalentsConfig = newTalentsConfig([ - { - name: 'Elemental', - backgroundUrl: 'https://wow.zamimg.com/images/wow/talents/backgrounds/classic/261.jpg', - talents: [ - { - fieldName: 'convection', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [16039, 16109], - maxPoints: 5, - }, - { - fieldName: 'concussion', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [16035, 16105], - maxPoints: 5, - }, - { - fieldName: 'callOfFlame', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [16038, 16160, 16161], - maxPoints: 3, - }, - { - //fieldName: 'elementalWarding', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [28996, 28997, 28998], - maxPoints: 3, - }, - { - fieldName: 'elementalDevastation', - location: { - rowIdx: 1, - colIdx: 2, - }, - spellIds: [30160, 29179, 29180], - maxPoints: 3, - }, - { - fieldName: 'reverberation', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [16040, 16113, 16114, 16115, 16116], - maxPoints: 5, - }, - { - fieldName: 'elementalFocus', - location: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [16164], - maxPoints: 1, - }, - { - fieldName: 'elementalFury', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [16089, 60184, 60185, 60187, 60188], - maxPoints: 5, - }, - { - fieldName: 'improvedFireNova', - location: { - rowIdx: 3, - colIdx: 0, - }, - spellIds: [16086, 16544], - maxPoints: 2, - }, - { - //fieldName: 'eyeOfTheStorm', - location: { - rowIdx: 3, - colIdx: 3, - }, - spellIds: [29062, 29064], - maxPoints: 3, - }, - { - //fieldName: 'elementalReach', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [28999], - maxPoints: 2, - }, - { - fieldName: 'callOfThunder', - location: { - rowIdx: 4, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [16041], - maxPoints: 1, - }, - { - fieldName: 'unrelentingStorm', - location: { - rowIdx: 4, - colIdx: 3, - }, - spellIds: [30664, 30665, 30666], - maxPoints: 3, - }, - { - fieldName: 'elementalPrecision', - location: { - rowIdx: 5, - colIdx: 0, - }, - spellIds: [30672, 30673, 30674], - maxPoints: 3, - }, - { - fieldName: 'lightningMastery', - location: { - rowIdx: 5, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [16578], - maxPoints: 5, - }, - { - fieldName: 'elementalMastery', - location: { - rowIdx: 6, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [16166], - maxPoints: 1, - }, - { - fieldName: 'stormEarthAndFire', - location: { - rowIdx: 6, - colIdx: 2, - }, - spellIds: [51483, 51485, 51486], - maxPoints: 3, - }, - { - fieldName: 'boomingEchoes', - location: { - rowIdx: 7, - colIdx: 0, - }, - spellIds: [63370, 63372], - maxPoints: 2, - }, - { - fieldName: 'elementalOath', - location: { - rowIdx: 7, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [51466, 51470], - maxPoints: 2, - }, - { - fieldName: 'lightningOverload', - location: { - rowIdx: 7, - colIdx: 2, - }, - spellIds: [30675, 30678, 30679], - maxPoints: 3, - }, - { - // fieldName: 'astralShift', - location: { - rowIdx: 8, - colIdx: 0, - }, - spellIds: [51474, 51478, 51479], - maxPoints: 3, - }, - { - fieldName: 'totemOfWrath', - location: { - rowIdx: 8, - colIdx: 1, - }, - spellIds: [30706], - maxPoints: 1, - }, - { - fieldName: 'lavaFlows', - location: { - rowIdx: 8, - colIdx: 2, - }, - spellIds: [51480, 51481, 51482], - maxPoints: 3, - }, - { - fieldName: 'shamanism', - location: { - rowIdx: 9, - colIdx: 1, - }, - spellIds: [62097], - maxPoints: 5, - }, - { - fieldName: 'thunderstorm', - location: { - rowIdx: 10, - colIdx: 1, - }, - spellIds: [51490], - maxPoints: 1, - }, - ], - }, - { - name: 'Enhancement', - backgroundUrl: 'https://wow.zamimg.com/images/wow/talents/backgrounds/classic/263.jpg', - talents: [ - { - fieldName: 'enhancingTotems', - location: { - rowIdx: 0, - colIdx: 0, - }, - spellIds: [16259, 16295, 52456], - maxPoints: 3, - }, - { - // fieldName: 'earthsGrasp', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [16043, 16130], - maxPoints: 2, - }, - { - fieldName: 'ancestralKnowledge', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [17485], - maxPoints: 5, - }, - { - //fieldName: 'guardianTotems', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [16258, 16293], - maxPoints: 2, - }, - { - fieldName: 'thunderingStrikes', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [16255, 16302], - maxPoints: 5, - }, - { - //fieldName: 'improvedGhostWolf', - location: { - rowIdx: 1, - colIdx: 2, - }, - spellIds: [16262, 16287], - maxPoints: 2, - }, - { - fieldName: 'improvedShields', - location: { - rowIdx: 1, - colIdx: 3, - }, - spellIds: [16261, 16290, 51881], - maxPoints: 3, - }, - { - fieldName: 'elementalWeapons', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [16266, 29079, 29080], - maxPoints: 3, - }, - { - fieldName: 'shamanisticFocus', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [43338], - maxPoints: 1, - }, - { - fieldName: 'anticipation', - location: { - rowIdx: 2, - colIdx: 3, - }, - spellIds: [16254, 16271], - maxPoints: 3, - }, - { - fieldName: 'flurry', - location: { - rowIdx: 3, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [16256, 16281], - maxPoints: 5, - }, - { - fieldName: 'toughness', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [16252, 16306], - maxPoints: 5, - }, - { - fieldName: 'improvedWindfuryTotem', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [29192, 29193], - maxPoints: 2, - }, - { - fieldName: 'spiritWeapons', - location: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [16268], - maxPoints: 1, - }, - { - fieldName: 'mentalDexterity', - location: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [51883], - maxPoints: 3, - }, - { - fieldName: 'unleashedRage', - location: { - rowIdx: 5, - colIdx: 0, - }, - spellIds: [30802, 30808, 30809], - maxPoints: 3, - }, - { - fieldName: 'weaponMastery', - location: { - rowIdx: 5, - colIdx: 2, - }, - spellIds: [29082, 29084, 29086], - maxPoints: 3, - }, - { - fieldName: 'frozenPower', - location: { - rowIdx: 5, - colIdx: 3, - }, - spellIds: [63373, 63374], - maxPoints: 2, - }, - { - fieldName: 'dualWieldSpecialization', - location: { - rowIdx: 6, - colIdx: 0, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [30816, 30818], - maxPoints: 3, - }, - { - //fieldName: 'dualWield', - location: { - rowIdx: 6, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 4, - colIdx: 1, - }, - spellIds: [30798], - maxPoints: 1, - }, - { - fieldName: 'stormstrike', - location: { - rowIdx: 6, - colIdx: 2, - }, - spellIds: [17364], - maxPoints: 1, - }, - { - fieldName: 'staticShock', - location: { - rowIdx: 7, - colIdx: 0, - }, - spellIds: [51525], - maxPoints: 3, - }, - { - fieldName: 'lavaLash', - location: { - rowIdx: 7, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 1, - }, - spellIds: [60103], - maxPoints: 1, - }, - { - fieldName: 'improvedStormstrike', - location: { - rowIdx: 7, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 6, - colIdx: 2, - }, - spellIds: [51521, 51522], - maxPoints: 2, - }, - { - fieldName: 'mentalQuickness', - location: { - rowIdx: 8, - colIdx: 0, - }, - spellIds: [30812], - maxPoints: 3, - }, - { - fieldName: 'shamanisticRage', - location: { - rowIdx: 8, - colIdx: 1, - }, - spellIds: [30823], - maxPoints: 1, - }, - { - fieldName: 'earthenPower', - location: { - rowIdx: 8, - colIdx: 2, - }, - spellIds: [51523, 51524], - maxPoints: 2, - }, - { - fieldName: 'maelstromWeapon', - location: { - rowIdx: 9, - colIdx: 1, - }, - spellIds: [51528], - maxPoints: 5, - }, - { - fieldName: 'feralSpirit', - location: { - rowIdx: 10, - colIdx: 1, - }, - spellIds: [51533], - maxPoints: 1, - }, - ], - }, - { - name: 'Restoration', - backgroundUrl: 'https://wow.zamimg.com/images/wow/talents/backgrounds/classic/262.jpg', - talents: [ - { - //fieldName: 'improvedHealingWave', - location: { - rowIdx: 0, - colIdx: 1, - }, - spellIds: [16182, 16226], - maxPoints: 5, - }, - { - fieldName: 'totemicFocus', - location: { - rowIdx: 0, - colIdx: 2, - }, - spellIds: [16173, 16222], - maxPoints: 5, - }, - { - //fieldName: 'improvedReincarnation', - location: { - rowIdx: 1, - colIdx: 0, - }, - spellIds: [16184, 16209], - maxPoints: 2, - }, - { - //fieldName: 'healingGrace', - location: { - rowIdx: 1, - colIdx: 1, - }, - spellIds: [29187, 29189, 29191], - maxPoints: 3, - }, - { - //fieldName: 'tidalFocus', - location: { - rowIdx: 1, - colIdx: 2, - }, - spellIds: [16179, 16214], - maxPoints: 5, - }, - { - fieldName: 'improvedWaterShield', - location: { - rowIdx: 2, - colIdx: 0, - }, - spellIds: [16180, 16196, 16198], - maxPoints: 3, - }, - { - //fieldName: 'healingFocus', - location: { - rowIdx: 2, - colIdx: 1, - }, - spellIds: [16181, 16230, 16232], - maxPoints: 3, - }, - { - //fieldName: 'tidalForce', - location: { - rowIdx: 2, - colIdx: 2, - }, - spellIds: [55198], - maxPoints: 1, - }, - { - //fieldName: 'ancestralUealing', - location: { - rowIdx: 2, - colIdx: 3, - }, - spellIds: [16176, 16235], - maxPoints: 3, - }, - { - fieldName: 'restorativeTotems', - location: { - rowIdx: 3, - colIdx: 1, - }, - spellIds: [16187, 16205], - maxPoints: 3, - }, - { - fieldName: 'tidalMastery', - location: { - rowIdx: 3, - colIdx: 2, - }, - spellIds: [16194, 16218], - maxPoints: 5, - }, - { - //fieldName: 'healingWay', - location: { - rowIdx: 4, - colIdx: 0, - }, - spellIds: [29206, 29205, 29202], - maxPoints: 3, - }, - { - fieldName: 'naturesSwiftness', - location: { - rowIdx: 4, - colIdx: 2, - }, - spellIds: [16188], - maxPoints: 1, - }, - { - //fieldName: 'focusedMind', - location: { - rowIdx: 4, - colIdx: 3, - }, - spellIds: [30864], - maxPoints: 3, - }, - { - //fieldName: 'purification', - location: { - rowIdx: 5, - colIdx: 2, - }, - spellIds: [16178, 16210], - maxPoints: 5, - }, - { - //fieldName: 'naturesGuardian', - location: { - rowIdx: 6, - colIdx: 0, - }, - spellIds: [30881, 30883], - maxPoints: 5, - }, - { - fieldName: 'manaTideTotem', - location: { - rowIdx: 6, - colIdx: 1, - }, - prereqLocation: { - rowIdx: 3, - colIdx: 1, - }, - spellIds: [16190], - maxPoints: 1, - }, - { - //fieldName: 'cleanseSpirit', - location: { - rowIdx: 6, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 5, - colIdx: 2, - }, - spellIds: [51886], - maxPoints: 1, - }, - { - fieldName: 'blessingOfTheEternals', - location: { - rowIdx: 7, - colIdx: 0, - }, - spellIds: [51554, 51555], - maxPoints: 2, - }, - { - //fieldName: 'improvedChainHeal', - location: { - rowIdx: 7, - colIdx: 1, - }, - spellIds: [30872], - maxPoints: 2, - }, - { - fieldName: 'naturesBlessing', - location: { - rowIdx: 7, - colIdx: 2, - }, - spellIds: [30867], - maxPoints: 3, - }, - { - fieldName: 'ancestralAwakening', - location: { - rowIdx: 8, - colIdx: 0, - }, - spellIds: [51556], - maxPoints: 3, - }, - { - //fieldName: 'earthShield', - location: { - rowIdx: 8, - colIdx: 1, - }, - spellIds: [974], - maxPoints: 1, - }, - { - //fieldName: 'improvedEarthShield', - location: { - rowIdx: 8, - colIdx: 2, - }, - prereqLocation: { - rowIdx: 8, - colIdx: 1, - }, - spellIds: [51560], - maxPoints: 2, - }, - { - //fieldName: 'tidalWaves', - location: { - rowIdx: 9, - colIdx: 1, - }, - spellIds: [51562], - maxPoints: 5, - }, - { - //fieldName: 'riptide', - location: { - rowIdx: 10, - colIdx: 1, - }, - spellIds: [61295], - maxPoints: 1, - }, - ], - }, -]); +import ShamanTalentJson from './trees/shaman.json'; + +export const shamanTalentsConfig: TalentsConfig = newTalentsConfig(ShamanTalentJson); export const shamanGlyphsConfig: GlyphsConfig = { majorGlyphs: { diff --git a/ui/core/talents/talents_picker.ts b/ui/core/talents/talents_picker.ts index 2e38f9f9fd..24c1ba1245 100644 --- a/ui/core/talents/talents_picker.ts +++ b/ui/core/talents/talents_picker.ts @@ -328,7 +328,7 @@ export type TalentLocation = { }; export type TalentConfig = { - fieldName?: keyof TalentsProto; + fieldName?: keyof TalentsProto | string; location: TalentLocation; diff --git a/ui/core/talents/trees/deathknight.json b/ui/core/talents/trees/deathknight.json new file mode 100644 index 0000000000..9a7d21d46c --- /dev/null +++ b/ui/core/talents/trees/deathknight.json @@ -0,0 +1,1165 @@ +[ + { + "name": "Blood", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/398.jpg", + "talents": [ + { + "fieldName": "butchery", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 48979, + 49483 + ], + "maxPoints": 2 + }, + { + "fieldName": "subversion", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 48997, + 49490, + 49491 + ], + "maxPoints": 3 + }, + { + "fieldName": "bladeBarrier", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 49182, + 49500, + 49501, + 55225, + 55226 + ], + "maxPoints": 5 + }, + { + "fieldName": "bladedArmor", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 48978, + 49390, + 49391, + 49392, + 49393 + ], + "maxPoints": 5 + }, + { + "fieldName": "scentOfBlood", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 49004, + 49508, + 49509 + ], + "maxPoints": 3 + }, + { + "fieldName": "twoHandedWeaponSpecialization", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 55107, + 55108 + ], + "maxPoints": 2 + }, + { + "fieldName": "runeTap", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 48982 + ], + "maxPoints": 1 + }, + { + "fieldName": "darkConviction", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 48987, + 49477, + 49478, + 49479, + 49480 + ], + "maxPoints": 5 + }, + { + "fieldName": "deathRuneMastery", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 49467, + 50033, + 50034 + ], + "maxPoints": 3 + }, + { + "fieldName": "improvedRuneTap", + "location": { + "rowIdx": 3, + "colIdx": 0 + }, + "spellIds": [ + 48985, + 49488, + 49489 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 2, + "colIdx": 0 + } + }, + { + "fieldName": "spellDeflection", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 49145, + 49495, + 49497 + ], + "maxPoints": 3 + }, + { + "fieldName": "vendetta", + "location": { + "rowIdx": 3, + "colIdx": 3 + }, + "spellIds": [ + 49015, + 50154, + 55136 + ], + "maxPoints": 3 + }, + { + "fieldName": "bloodyStrikes", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 48977, + 49394, + 49395 + ], + "maxPoints": 3 + }, + { + "fieldName": "veteranOfTheThirdWar", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 49006, + 49526, + 50029 + ], + "maxPoints": 3 + }, + { + "fieldName": "markOfBlood", + "location": { + "rowIdx": 4, + "colIdx": 3 + }, + "spellIds": [ + 49005 + ], + "maxPoints": 1 + }, + { + "fieldName": "bloodyVengeance", + "location": { + "rowIdx": 5, + "colIdx": 1 + }, + "spellIds": [ + 48988, + 49503, + 49504 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 2, + "colIdx": 1 + } + }, + { + "fieldName": "abominationsMight", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 53137, + 53138 + ], + "maxPoints": 2 + }, + { + "fieldName": "bloodworms", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 49027, + 49542, + 49543 + ], + "maxPoints": 3 + }, + { + "fieldName": "hysteria", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 49016 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedBloodPresence", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 50365, + 50371 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedDeathStrike", + "location": { + "rowIdx": 7, + "colIdx": 0 + }, + "spellIds": [ + 62905, + 62908 + ], + "maxPoints": 2 + }, + { + "fieldName": "suddenDoom", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 49018, + 49529, + 49530 + ], + "maxPoints": 3 + }, + { + "fieldName": "vampiricBlood", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 55233 + ], + "maxPoints": 1 + }, + { + "fieldName": "willOfTheNecropolis", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 49189, + 50149, + 50150 + ], + "maxPoints": 3 + }, + { + "fieldName": "heartStrike", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 55050 + ], + "maxPoints": 1 + }, + { + "fieldName": "mightOfMograine", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 49023, + 49533, + 49534 + ], + "maxPoints": 3 + }, + { + "fieldName": "bloodGorged", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 61154, + 61155, + 61156, + 61157, + 61158 + ], + "maxPoints": 5 + }, + { + "fieldName": "dancingRuneWeapon", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 49028 + ], + "maxPoints": 1 + } + + ] + }, + { + "name": "Frost", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/399.jpg", + "talents": [ + { + "fieldName": "improvedIcyTouch", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 49175, + 50031, + 51456 + ], + "maxPoints": 3 + }, + { + "fieldName": "runicPowerMastery", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 49455, + 50147 + ], + "maxPoints": 2 + }, + { + "fieldName": "toughness", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 49042, + 49786, + 49787, + 49788, + 49789 + ], + "maxPoints": 5 + }, + { + "fieldName": "icyReach", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 55061, + 55062 + ], + "maxPoints": 2 + }, + { + "fieldName": "blackIce", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 49140, + 49661, + 49662, + 49663, + 49664 + ], + "maxPoints": 5 + }, + { + "fieldName": "nervesOfColdSteel", + "location": { + "rowIdx": 1, + "colIdx": 3 + }, + "spellIds": [ + 49226, + 50137, + 50138 + ], + "maxPoints": 3 + }, + { + "fieldName": "icyTalons", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 50880, + 50884, + 50885, + 50886, + 50887 + ], + "maxPoints": 5, + "prereqLocation": { + "rowIdx": 0, + "colIdx": 0 + } + }, + { + "fieldName": "lichborne", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 49039 + ], + "maxPoints": 1 + }, + { + "fieldName": "annihilation", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 51468, + 51472, + 51473 + ], + "maxPoints": 3 + }, + { + "fieldName": "killingMachine", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 51123, + 51127, + 51128, + 51129, + 51130 + ], + "maxPoints": 5 + }, + { + "fieldName": "chillOfTheGrave", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 49149, + 50115 + ], + "maxPoints": 2 + }, + { + "fieldName": "endlessWinter", + "location": { + "rowIdx": 3, + "colIdx": 3 + }, + "spellIds": [ + 49137, + 49657 + ], + "maxPoints": 2 + }, + { + "fieldName": "frigidDreadplate", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 49186, + 51108, + 51109 + ], + "maxPoints": 3 + }, + { + "fieldName": "glacierRot", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 49471, + 49790, + 49791 + ], + "maxPoints": 3 + }, + { + "fieldName": "deathchill", + "location": { + "rowIdx": 4, + "colIdx": 3 + }, + "spellIds": [ + 49796 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedIcyTalons", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 55610 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 2, + "colIdx": 0 + } + }, + { + "fieldName": "mercilessCombat", + "location": { + "rowIdx": 5, + "colIdx": 1 + }, + "spellIds": [ + 49024, + 49538 + ], + "maxPoints": 2 + }, + { + "fieldName": "rime", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 49188, + 56822, + 59057 + ], + "maxPoints": 3 + }, + { + "fieldName": "chilblains", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 50040, + 50041, + 50043 + ], + "maxPoints": 3 + }, + { + "fieldName": "hungeringCold", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 49203 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedFrostPresence", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 50384, + 50385 + ], + "maxPoints": 2 + }, + { + "fieldName": "threatOfThassarian", + "location": { + "rowIdx": 7, + "colIdx": 0 + }, + "spellIds": [ + 65661, + 66191, + 66192 + ], + "maxPoints": 3 + }, + { + "fieldName": "bloodOfTheNorth", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 54639, + 54638, + 54637 + ], + "maxPoints": 3 + }, + { + "fieldName": "unbreakableArmor", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 51271 + ], + "maxPoints": 1 + }, + { + "fieldName": "acclimation", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 49200, + 50151, + 50152 + ], + "maxPoints": 3 + }, + { + "fieldName": "frostStrike", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 49143 + ], + "maxPoints": 1 + }, + { + "fieldName": "guileOfGorefiend", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 50187, + 50190, + 50191 + ], + "maxPoints": 3 + }, + { + "fieldName": "tundraStalker", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 49202, + 50127, + 50128, + 50129, + 50130 + ], + "maxPoints": 5 + }, + { + "fieldName": "howlingBlast", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 49184 + ], + "maxPoints": 1 + } + ] + }, + { + "name": "Unholy", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/400.jpg", + "talents": [ + { + "fieldName": "viciousStrikes", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 51745, + 51746 + ], + "maxPoints": 2 + }, + { + "fieldName": "virulence", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 48962, + 49567, + 49568 + ], + "maxPoints": 3 + }, + { + "fieldName": "anticipation", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 55129, + 55130, + 55131, + 55132, + 55133 + ], + "maxPoints": 5 + }, + { + "fieldName": "epidemic", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 49036, + 49562 + ], + "maxPoints": 2 + }, + { + "fieldName": "morbidity", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 48963, + 49564, + 49565 + ], + "maxPoints": 3 + }, + { + "fieldName": "unholyCommand", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 49588, + 49589 + ], + "maxPoints": 2 + }, + { + "fieldName": "ravenousDead", + "location": { + "rowIdx": 1, + "colIdx": 3 + }, + "spellIds": [ + 48965, + 49571, + 49572 + ], + "maxPoints": 3 + }, + { + "fieldName": "outbreak", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 49013, + 55236, + 55237 + ], + "maxPoints": 3 + }, + { + "fieldName": "necrosis", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 51459, + 51462, + 51463, + 51464, + 51465 + ], + "maxPoints": 5 + }, + { + "fieldName": "corpseExplosion", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 49158 + ], + "maxPoints": 1 + }, + { + "fieldName": "onAPaleHorse", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 49146, + 51267 + ], + "maxPoints": 2 + }, + { + "fieldName": "bloodCakedBlade", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 49219, + 49627, + 49628 + ], + "maxPoints": 3 + }, + { + "fieldName": "nightOfTheDead", + "location": { + "rowIdx": 3, + "colIdx": 3 + }, + "spellIds": [ + 55620, + 55623 + ], + "maxPoints": 2 + }, + { + "fieldName": "unholyBlight", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 49194 + ], + "maxPoints": 1 + }, + { + "fieldName": "impurity", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 49220, + 49633, + 49635, + 49636, + 49638 + ], + "maxPoints": 5 + }, + { + "fieldName": "dirge", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 49223, + 49599 + ], + "maxPoints": 2 + }, + { + "fieldName": "desecration", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 55666, + 55667 + ], + "maxPoints": 2 + }, + { + "fieldName": "magicSuppression", + "location": { + "rowIdx": 5, + "colIdx": 1 + }, + "spellIds": [ + 49224, + 49610, + 49611 + ], + "maxPoints": 3 + }, + { + "fieldName": "reaping", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 49208, + 56834, + 56835 + ], + "maxPoints": 3 + }, + { + "fieldName": "masterOfGhouls", + "location": { + "rowIdx": 5, + "colIdx": 3 + }, + "spellIds": [ + 52143 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 3, + "colIdx": 3 + } + }, + { + "fieldName": "desolation", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 66799, + 66814, + 66815, + 66816, + 66817 + ], + "maxPoints": 5 + }, + { + "fieldName": "antiMagicZone", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 51052 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 5, + "colIdx": 1 + } + }, + { + "fieldName": "improvedUnholyPresence", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 50391, + 50392 + ], + "maxPoints": 2 + }, + { + "fieldName": "ghoulFrenzy", + "location": { + "rowIdx": 6, + "colIdx": 3 + }, + "spellIds": [ + 63560 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 5, + "colIdx": 3 + } + }, + { + "fieldName": "cryptFever", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 49032, + 49631, + 49632 + ], + "maxPoints": 3 + }, + { + "fieldName": "boneShield", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 49222 + ], + "maxPoints": 1 + }, + { + "fieldName": "wanderingPlague", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 49217, + 49654, + 49655 + ], + "maxPoints": 3 + }, + { + "fieldName": "ebonPlaguebringer", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 51099, + 51160, + 51161 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 7, + "colIdx": 1 + } + }, + { + "fieldName": "scourgeStrike", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 55090 + ], + "maxPoints": 1 + }, + { + "fieldName": "rageOfRivendare", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 50117, + 50118, + 50119, + 50120, + 50121 + ], + "maxPoints": 5 + }, + { + "fieldName": "summonGargoyle", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 49206 + ], + "maxPoints": 1 + } + + ] + } +] \ No newline at end of file diff --git a/ui/core/talents/trees/druid.json b/ui/core/talents/trees/druid.json new file mode 100644 index 0000000000..123716ca28 --- /dev/null +++ b/ui/core/talents/trees/druid.json @@ -0,0 +1,1171 @@ +[ + { + "name": "Balance", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/283.jpg", + "talents": [ + { + "fieldName": "starlightWrath", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 16814, + 16815, + 16816, + 16817, + 16818 + ], + "maxPoints": 5 + }, + { + "fieldName": "genesis", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 57810, + 57811, + 57812, + 57813, + 57814 + ], + "maxPoints": 5 + }, + { + "fieldName": "moonglow", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 16845, + 16846, + 16847 + ], + "maxPoints": 3 + }, + { + "fieldName": "naturesMajesty", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 35363, + 35364 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedMoonfire", + "location": { + "rowIdx": 1, + "colIdx": 3 + }, + "spellIds": [ + 16821, + 16822 + ], + "maxPoints": 2 + }, + { + "fieldName": "brambles", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 16836, + 16839, + 16840 + ], + "maxPoints": 3 + }, + { + "fieldName": "naturesGrace", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 16880, + 61345, + 61346 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 1, + "colIdx": 1 + } + }, + { + "fieldName": "naturesSplendor", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 57865 + ], + "maxPoints": 1 + }, + { + "fieldName": "naturesReach", + "location": { + "rowIdx": 2, + "colIdx": 3 + }, + "spellIds": [ + 16819, + 16820 + ], + "maxPoints": 2 + }, + { + "fieldName": "vengeance", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 16909, + 16910, + 16911, + 16912, + 16913 + ], + "maxPoints": 5 + }, + { + "fieldName": "celestialFocus", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 16850, + 16923, + 16924 + ], + "maxPoints": 3 + }, + { + "fieldName": "lunarGuidance", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 33589, + 33590, + 33591 + ], + "maxPoints": 3 + }, + { + "fieldName": "insectSwarm", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 5570 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedInsectSwarm", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 57849, + 57850, + 57851 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "dreamstate", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 33597, + 33599, + 33956 + ], + "maxPoints": 3 + }, + { + "fieldName": "moonfury", + "location": { + "rowIdx": 5, + "colIdx": 1 + }, + "spellIds": [ + 16896, + 16897, + 16899 + ], + "maxPoints": 3 + }, + { + "fieldName": "balanceOfPower", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 33592, + 33596 + ], + "maxPoints": 2 + }, + { + "fieldName": "moonkinForm", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 24858 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedMoonkinForm", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 48384, + 48395, + 48396 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "improvedFaerieFire", + "location": { + "rowIdx": 6, + "colIdx": 3 + }, + "spellIds": [ + 33600, + 33601, + 33602 + ], + "maxPoints": 3 + }, + { + "fieldName": "owlkinFrenzy", + "location": { + "rowIdx": 7, + "colIdx": 0 + }, + "spellIds": [ + 48389, + 48392, + 48393 + ], + "maxPoints": 3 + }, + { + "fieldName": "wrathOfCenarius", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 33603, + 33604, + 33605, + 33606, + 33607 + ], + "maxPoints": 5 + }, + { + "fieldName": "eclipse", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 48516, + 48521, + 48525 + ], + "maxPoints": 3 + }, + { + "fieldName": "typhoon", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 50516 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "forceOfNature", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 33831 + ], + "maxPoints": 1 + }, + { + "fieldName": "galeWinds", + "location": { + "rowIdx": 8, + "colIdx": 3 + }, + "spellIds": [ + 48488, + 48514 + ], + "maxPoints": 2 + }, + { + "fieldName": "earthAndMoon", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 48506, + 48510, + 48511 + ], + "maxPoints": 3 + }, + { + "fieldName": "starfall", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 48505 + ], + "maxPoints": 1 + } + ] + }, + { + "name": "Feral Combat", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/281.jpg", + "talents": [ + { + "fieldName": "ferocity", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 16934, + 16935, + 16936, + 16937, + 16938 + ], + "maxPoints": 5 + }, + { + "fieldName": "feralAggression", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 16858, + 16859, + 16860, + 16861, + 16862 + ], + "maxPoints": 5 + }, + { + "fieldName": "feralInstinct", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 16947, + 16948, + 16949 + ], + "maxPoints": 3 + }, + { + "fieldName": "savageFury", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 16998, + 16999 + ], + "maxPoints": 2 + }, + { + "fieldName": "thickHide", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 16929, + 16930, + 16931 + ], + "maxPoints": 3 + }, + { + "fieldName": "feralSwiftness", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 17002, + 24866 + ], + "maxPoints": 2 + }, + { + "fieldName": "survivalInstincts", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 61336 + ], + "maxPoints": 1 + }, + { + "fieldName": "sharpenedClaws", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 16942, + 16943, + 16944 + ], + "maxPoints": 3 + }, + { + "fieldName": "shreddingAttacks", + "location": { + "rowIdx": 3, + "colIdx": 0 + }, + "spellIds": [ + 16966, + 16968 + ], + "maxPoints": 2 + }, + { + "fieldName": "predatoryStrikes", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 16972, + 16974, + 16975 + ], + "maxPoints": 3 + }, + { + "fieldName": "primalFury", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 37116, + 37117 + ], + "maxPoints": 2, + "prereqLocation": { + "rowIdx": 2, + "colIdx": 2 + } + }, + { + "fieldName": "primalPrecision", + "location": { + "rowIdx": 3, + "colIdx": 3 + }, + "spellIds": [ + 48409, + 48410 + ], + "maxPoints": 2 + }, + { + "fieldName": "brutalImpact", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 16940, + 16941 + ], + "maxPoints": 2 + }, + { + "fieldName": "feralCharge", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 49377 + ], + "maxPoints": 1 + }, + { + "fieldName": "nurturingInstinct", + "location": { + "rowIdx": 4, + "colIdx": 3 + }, + "spellIds": [ + 33872, + 33873 + ], + "maxPoints": 2 + }, + { + "fieldName": "naturalReaction", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 57878, + 57880, + 57881 + ], + "maxPoints": 3 + }, + { + "fieldName": "heartOfTheWild", + "location": { + "rowIdx": 5, + "colIdx": 1 + }, + "spellIds": [ + 17003, + 17004, + 17005, + 17006, + 24894 + ], + "maxPoints": 5, + "prereqLocation": { + "rowIdx": 3, + "colIdx": 1 + } + }, + { + "fieldName": "survivalOfTheFittest", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 33853, + 33855, + 33856 + ], + "maxPoints": 3 + }, + { + "fieldName": "leaderOfThePack", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 17007 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedLeaderOfThePack", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 34297, + 34300 + ], + "maxPoints": 2, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "primalTenacity", + "location": { + "rowIdx": 6, + "colIdx": 3 + }, + "spellIds": [ + 33851, + 33852, + 33957 + ], + "maxPoints": 3 + }, + { + "fieldName": "protectorOfThePack", + "location": { + "rowIdx": 7, + "colIdx": 0 + }, + "spellIds": [ + 57873, + 57876, + 57877 + ], + "maxPoints": 3 + }, + { + "fieldName": "predatoryInstincts", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 33859, + 33866, + 33867 + ], + "maxPoints": 3 + }, + { + "fieldName": "infectedWounds", + "location": { + "rowIdx": 7, + "colIdx": 3 + }, + "spellIds": [ + 48483, + 48484, + 48485 + ], + "maxPoints": 3 + }, + { + "fieldName": "kingOfTheJungle", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 48492, + 48494, + 48495 + ], + "maxPoints": 3 + }, + { + "fieldName": "mangle", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 33917 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "improvedMangle", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 48532, + 48489, + 48491 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 8, + "colIdx": 1 + } + }, + { + "fieldName": "rendAndTear", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 48432, + 48433, + 48434, + 51268, + 51269 + ], + "maxPoints": 5 + }, + { + "fieldName": "primalGore", + "location": { + "rowIdx": 9, + "colIdx": 2 + }, + "spellIds": [ + 63503 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 9, + "colIdx": 1 + } + }, + { + "fieldName": "berserk", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 50334 + ], + "maxPoints": 1 + } + ] + }, + { + "name": "Restoration", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/282.jpg", + "talents": [ + { + "fieldName": "improvedMarkOfTheWild", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 17050, + 17051 + ], + "maxPoints": 2 + }, + { + "fieldName": "naturesFocus", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 17063, + 17065, + 17066 + ], + "maxPoints": 3 + }, + { + "fieldName": "furor", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 17056, + 17058, + 17059, + 17060, + 17061 + ], + "maxPoints": 5 + }, + { + "fieldName": "naturalist", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 17069, + 17070, + 17071, + 17072, + 17073 + ], + "maxPoints": 5 + }, + { + "fieldName": "subtlety", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 17118, + 17119, + 17120 + ], + "maxPoints": 3 + }, + { + "fieldName": "naturalShapeshifter", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 16833, + 16834, + 16835 + ], + "maxPoints": 3 + }, + { + "fieldName": "intensity", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 17106, + 17107, + 17108 + ], + "maxPoints": 3 + }, + { + "fieldName": "omenOfClarity", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 16864 + ], + "maxPoints": 1 + }, + { + "fieldName": "masterShapeshifter", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 48411, + 48412 + ], + "maxPoints": 2, + "prereqLocation": { + "rowIdx": 1, + "colIdx": 2 + } + }, + { + "fieldName": "tranquilSpirit", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 24968, + 24969, + 24970, + 24971, + 24972 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedRejuvenation", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 17111, + 17112, + 17113 + ], + "maxPoints": 3 + }, + { + "fieldName": "naturesSwiftness", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 17116 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 2, + "colIdx": 0 + } + }, + { + "fieldName": "giftOfNature", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 17104, + 24943, + 24944, + 24945, + 24946 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedTranquility", + "location": { + "rowIdx": 4, + "colIdx": 3 + }, + "spellIds": [ + 17123, + 17124 + ], + "maxPoints": 2 + }, + { + "fieldName": "empoweredTouch", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 33879, + 33880 + ], + "maxPoints": 2 + }, + { + "fieldName": "naturesBounty", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 17074, + 17075, + 17076, + 17077, + 17078 + ], + "maxPoints": 5, + "prereqLocation": { + "rowIdx": 3, + "colIdx": 2 + } + }, + { + "fieldName": "livingSpirit", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 34151, + 34152, + 34153 + ], + "maxPoints": 3 + }, + { + "fieldName": "swiftmend", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 18562 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "naturalPerfection", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 33881, + 33882, + 33883 + ], + "maxPoints": 3 + }, + { + "fieldName": "empoweredRejuvenation", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 33886, + 33887, + 33888, + 33889, + 33890 + ], + "maxPoints": 5 + }, + { + "fieldName": "livingSeed", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 48496, + 48499, + 48500 + ], + "maxPoints": 3 + }, + { + "fieldName": "revitalize", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 48539, + 48544, + 48545 + ], + "maxPoints": 3 + }, + { + "fieldName": "treeOfLife", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 65139 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 7, + "colIdx": 1 + } + }, + { + "fieldName": "improvedTreeOfLife", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 48535, + 48536, + 48537 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 8, + "colIdx": 1 + } + }, + { + "fieldName": "improvedBarkskin", + "location": { + "rowIdx": 9, + "colIdx": 0 + }, + "spellIds": [ + 63410, + 63411 + ], + "maxPoints": 2 + }, + { + "fieldName": "giftOfTheEarthmother", + "location": { + "rowIdx": 9, + "colIdx": 2 + }, + "spellIds": [ + 51179, + 51180, + 51181, + 51182, + 51183 + ], + "maxPoints": 5 + }, + { + "fieldName": "wildGrowth", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 48438 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 8, + "colIdx": 1 + } + } + ] + } +] \ No newline at end of file diff --git a/ui/core/talents/trees/hunter.json b/ui/core/talents/trees/hunter.json new file mode 100644 index 0000000000..0bfae96722 --- /dev/null +++ b/ui/core/talents/trees/hunter.json @@ -0,0 +1,1121 @@ +[ + { + "name": "Beast Mastery", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/361.jpg", + "talents": [ + { + "fieldName": "improvedAspectOfTheHawk", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 19552, + 19553, + 19554, + 19555, + 19556 + ], + "maxPoints": 5 + }, + { + "fieldName": "enduranceTraining", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 19583, + 19584, + 19585, + 19586, + 19587 + ], + "maxPoints": 5 + }, + { + "fieldName": "focusedFire", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 35029, + 35030 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedAspectOfTheMonkey", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 19549, + 19550, + 19551 + ], + "maxPoints": 3 + }, + { + "fieldName": "thickHide", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 19609, + 19610, + 19612 + ], + "maxPoints": 3 + }, + { + "fieldName": "improvedRevivePet", + "location": { + "rowIdx": 1, + "colIdx": 3 + }, + "spellIds": [ + 24443, + 19575 + ], + "maxPoints": 2 + }, + { + "fieldName": "pathfinding", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 19559, + 19560 + ], + "maxPoints": 2 + }, + { + "fieldName": "aspectMastery", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 53265 + ], + "maxPoints": 1 + }, + { + "fieldName": "unleashedFury", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 19616, + 19617, + 19618, + 19619, + 19620 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedMendPet", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 19572, + 19573 + ], + "maxPoints": 2 + }, + { + "fieldName": "ferocity", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 19598, + 19599, + 19600, + 19601, + 19602 + ], + "maxPoints": 5 + }, + { + "fieldName": "spiritBond", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 19578, + 20895 + ], + "maxPoints": 2 + }, + { + "fieldName": "intimidation", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 19577 + ], + "maxPoints": 1 + }, + { + "fieldName": "bestialDiscipline", + "location": { + "rowIdx": 4, + "colIdx": 3 + }, + "spellIds": [ + 19590, + 19592 + ], + "maxPoints": 2 + }, + { + "fieldName": "animalHandler", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 34453, + 34454 + ], + "maxPoints": 2 + }, + { + "fieldName": "frenzy", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 19621, + 19622, + 19623, + 19624, + 19625 + ], + "maxPoints": 5, + "prereqLocation": { + "rowIdx": 3, + "colIdx": 2 + } + }, + { + "fieldName": "ferociousInspiration", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 34455, + 34459, + 34460 + ], + "maxPoints": 3 + }, + { + "fieldName": "bestialWrath", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 19574 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "catlikeReflexes", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 34462, + 34464, + 34465 + ], + "maxPoints": 3 + }, + { + "fieldName": "invigoration", + "location": { + "rowIdx": 7, + "colIdx": 0 + }, + "spellIds": [ + 53252, + 53253 + ], + "maxPoints": 2, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 0 + } + }, + { + "fieldName": "serpentsSwiftness", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 34466, + 34467, + 34468, + 34469, + 34470 + ], + "maxPoints": 5 + }, + { + "fieldName": "longevity", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 53262, + 53263, + 53264 + ], + "maxPoints": 3 + }, + { + "fieldName": "theBeastWithin", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 34692 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "cobraStrikes", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 53256, + 53259, + 53260 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 7, + "colIdx": 2 + } + }, + { + "fieldName": "kindredSpirits", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 56314, + 56315, + 56316, + 56317, + 56318 + ], + "maxPoints": 5 + }, + { + "fieldName": "beastMastery", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 53270 + ], + "maxPoints": 1 + } + ] + }, + { + "name": "Marksmanship", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/363.jpg", + "talents": [ + { + "fieldName": "improvedConcussiveShot", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 19407, + 19412 + ], + "maxPoints": 2 + }, + { + "fieldName": "focusedAim", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 53620, + 53621, + 53622 + ], + "maxPoints": 3 + }, + { + "fieldName": "lethalShots", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 19426, + 19427, + 19429, + 19430, + 19431 + ], + "maxPoints": 5 + }, + { + "fieldName": "carefulAim", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 34482, + 34483, + 34484 + ], + "maxPoints": 3 + }, + { + "fieldName": "improvedHuntersMark", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 19421, + 19422, + 19423 + ], + "maxPoints": 3 + }, + { + "fieldName": "mortalShots", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 19485, + 19487, + 19488, + 19489, + 19490 + ], + "maxPoints": 5 + }, + { + "fieldName": "goForTheThroat", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 34950, + 34954 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedArcaneShot", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 19454, + 19455, + 19456 + ], + "maxPoints": 3 + }, + { + "fieldName": "aimedShot", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 19434 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 1, + "colIdx": 2 + } + }, + { + "fieldName": "rapidKilling", + "location": { + "rowIdx": 2, + "colIdx": 3 + }, + "spellIds": [ + 34948, + 34949 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedStings", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 19464, + 19465, + 19466 + ], + "maxPoints": 3 + }, + { + "fieldName": "efficiency", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 19416, + 19417, + 19418, + 19419, + 19420 + ], + "maxPoints": 5 + }, + { + "fieldName": "concussiveBarrage", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 35100, + 35102 + ], + "maxPoints": 2 + }, + { + "fieldName": "readiness", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 23989 + ], + "maxPoints": 1 + }, + { + "fieldName": "barrage", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 19461, + 19462, + 24691 + ], + "maxPoints": 3 + }, + { + "fieldName": "combatExperience", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 34475, + 34476 + ], + "maxPoints": 2 + }, + { + "fieldName": "rangedWeaponSpecialization", + "location": { + "rowIdx": 5, + "colIdx": 3 + }, + "spellIds": [ + 19507, + 19508, + 19509 + ], + "maxPoints": 3 + }, + { + "fieldName": "piercingShots", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 53234, + 53237, + 53238 + ], + "maxPoints": 3 + }, + { + "fieldName": "trueshotAura", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 19506 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "improvedBarrage", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 35104, + 35110, + 35111 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 2 + } + }, + { + "fieldName": "masterMarksman", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 34485, + 34486, + 34487, + 34488, + 34489 + ], + "maxPoints": 5 + }, + { + "fieldName": "rapidRecuperation", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 53228, + 53232 + ], + "maxPoints": 2 + }, + { + "fieldName": "wildQuiver", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 53215, + 53216, + 53217 + ], + "maxPoints": 3 + }, + { + "fieldName": "silencingShot", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 34490 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 7, + "colIdx": 1 + } + }, + { + "fieldName": "improvedSteadyShot", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 53221, + 53222, + 53224 + ], + "maxPoints": 3 + }, + { + "fieldName": "markedForDeath", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 53241, + 53243, + 53244, + 53245, + 53246 + ], + "maxPoints": 5 + }, + { + "fieldName": "chimeraShot", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 53209 + ], + "maxPoints": 1 + } + ] + }, + { + "name": "Survival", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/362.jpg", + "talents": [ + { + "fieldName": "improvedTracking", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 52783, + 52785, + 52786, + 52787, + 52788 + ], + "maxPoints": 5 + }, + { + "fieldName": "hawkEye", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 19498, + 19499, + 19500 + ], + "maxPoints": 3 + }, + { + "fieldName": "savageStrikes", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 19159, + 19160 + ], + "maxPoints": 2 + }, + { + "fieldName": "surefooted", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 19290, + 19294, + 24283 + ], + "maxPoints": 3 + }, + { + "fieldName": "entrapment", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 19184, + 19387, + 19388 + ], + "maxPoints": 3 + }, + { + "fieldName": "trapMastery", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 19376, + 63457, + 63458 + ], + "maxPoints": 3 + }, + { + "fieldName": "survivalInstincts", + "location": { + "rowIdx": 1, + "colIdx": 3 + }, + "spellIds": [ + 34494, + 34496 + ], + "maxPoints": 2 + }, + { + "fieldName": "survivalist", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 19255, + 19256, + 19257, + 19258, + 19259 + ], + "maxPoints": 5 + }, + { + "fieldName": "scatterShot", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 19503 + ], + "maxPoints": 1 + }, + { + "fieldName": "deflection", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 19295, + 19297, + 19298 + ], + "maxPoints": 3 + }, + { + "fieldName": "survivalTactics", + "location": { + "rowIdx": 2, + "colIdx": 3 + }, + "spellIds": [ + 19286, + 19287 + ], + "maxPoints": 2 + }, + { + "fieldName": "tNT", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 56333, + 56336, + 56337 + ], + "maxPoints": 3 + }, + { + "fieldName": "lockAndLoad", + "location": { + "rowIdx": 3, + "colIdx": 3 + }, + "spellIds": [ + 56342, + 56343, + 56344 + ], + "maxPoints": 3 + }, + { + "fieldName": "hunterVsWild", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 56339, + 56340, + 56341 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 2, + "colIdx": 0 + } + }, + { + "fieldName": "killerInstinct", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 19370, + 19371, + 19373 + ], + "maxPoints": 3 + }, + { + "fieldName": "counterattack", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 19306 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 2, + "colIdx": 2 + } + }, + { + "fieldName": "lightningReflexes", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 19168, + 19180, + 19181, + 24296, + 24297 + ], + "maxPoints": 5 + }, + { + "fieldName": "resourcefulness", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 34491, + 34492, + 34493 + ], + "maxPoints": 3 + }, + { + "fieldName": "exposeWeakness", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 34500, + 34502, + 34503 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 5, + "colIdx": 0 + } + }, + { + "fieldName": "wyvernSting", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 19386 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "thrillOfTheHunt", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 34497, + 34498, + 34499 + ], + "maxPoints": 3 + }, + { + "fieldName": "masterTactician", + "location": { + "rowIdx": 7, + "colIdx": 0 + }, + "spellIds": [ + 34506, + 34507, + 34508, + 34838, + 34839 + ], + "maxPoints": 5 + }, + { + "fieldName": "noxiousStings", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 53295, + 53296, + 53297 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "pointOfNoEscape", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 53298, + 53299 + ], + "maxPoints": 2 + }, + { + "fieldName": "blackArrow", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 3674 + ], + "maxPoints": 1 + }, + { + "fieldName": "sniperTraining", + "location": { + "rowIdx": 8, + "colIdx": 3 + }, + "spellIds": [ + 53302, + 53303, + 53304 + ], + "maxPoints": 3 + }, + { + "fieldName": "huntingParty", + "location": { + "rowIdx": 9, + "colIdx": 2 + }, + "spellIds": [ + 53290, + 53291, + 53292 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 2 + } + }, + { + "fieldName": "explosiveShot", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 53301 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 8, + "colIdx": 1 + } + } + ] + } +] \ No newline at end of file diff --git a/ui/core/talents/trees/hunter_cunning.json b/ui/core/talents/trees/hunter_cunning.json new file mode 100644 index 0000000000..d5f4d824d5 --- /dev/null +++ b/ui/core/talents/trees/hunter_cunning.json @@ -0,0 +1,255 @@ +[ + { + "name":"Cunning", + "backgroundUrl":"https://wotlkdb.com/static/images/wow/hunterpettalents/bg_3.jpg?85", + "talents":[ + { + "fieldName":"cobraReflexes", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 61682 + ], + "maxPoints":2 + }, + { + "fieldName":"dive", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 23145 + ], + "maxPoints":1 + }, + { + "fieldName":"greatStamina", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 61686 + ], + "maxPoints":3 + }, + { + "fieldName":"naturalArmor", + "location":{ + "rowIdx":0, + "colIdx":3 + }, + "spellIds":[ + 61689 + ], + "maxPoints":2 + }, + { + "fieldName":"boarsSpeed", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 19596 + ], + "maxPoints":1 + }, + { + "fieldName":"mobility", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 53554 + ], + "maxPoints":2 + }, + { + "fieldName":"owlsFocus", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 53514, + 53516 + ], + "maxPoints":2 + }, + { + "fieldName":"spikedCollar", + "location":{ + "rowIdx":1, + "colIdx":3 + }, + "spellIds":[ + 53182 + ], + "maxPoints":3 + }, + { + "fieldName":"cullingTheHerd", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 61680, + 61681, + 52858 + ], + "maxPoints":3 + }, + { + "fieldName":"lionhearted", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 53409, + 53411 + ], + "maxPoints":2 + }, + { + "fieldName":"carrionFeeder", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 54044 + ], + "maxPoints":1 + }, + { + "fieldName":"greatResistance", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 53427, + 53429 + ], + "maxPoints":3 + }, + { + "fieldName":"cornered", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 52234, + 53497 + ], + "maxPoints":2 + }, + { + "fieldName":"feedingFrenzy", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "prereqLocation":{ + "rowIdx":1, + "colIdx":3 + }, + "spellIds":[ + 53511 + ], + "maxPoints":2 + }, + { + "fieldName":"wolverineBite", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 53508 + ], + "maxPoints":1 + }, + { + "fieldName":"roarOfRecovery", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 53517 + ], + "maxPoints":1 + }, + { + "fieldName":"bullheaded", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 53490 + ], + "maxPoints":1 + }, + { + "fieldName":"graceOfTheMantis", + "location":{ + "rowIdx":4, + "colIdx":3 + }, + "spellIds":[ + 53450 + ], + "maxPoints":2 + }, + { + "fieldName":"wildHunt", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 62758, + 62762 + ], + "maxPoints":2 + }, + { + "fieldName":"roarOfSacrifice", + "location":{ + "rowIdx":5, + "colIdx":3 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":3 + }, + "spellIds":[ + 53480 + ], + "maxPoints":1 + } + ] + } + ] \ No newline at end of file diff --git a/ui/core/talents/trees/hunter_ferocity.json b/ui/core/talents/trees/hunter_ferocity.json new file mode 100644 index 0000000000..182788c499 --- /dev/null +++ b/ui/core/talents/trees/hunter_ferocity.json @@ -0,0 +1,238 @@ +[ + { + "name":"Ferocity", + "backgroundUrl":"https://wotlkdb.com/static/images/wow/hunterpettalents/bg_1.jpg?85", + "talents":[ + { + "fieldName":"cobraReflexes", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 61682 + ], + "maxPoints":2 + }, + { + "fieldName":"dive", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 23145 + ], + "maxPoints":1 + }, + { + "fieldName":"greatStamina", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 61686 + ], + "maxPoints":3 + }, + { + "fieldName":"naturalArmor", + "location":{ + "rowIdx":0, + "colIdx":3 + }, + "spellIds":[ + 61689 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedCower", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 53180 + ], + "maxPoints":2 + }, + { + "fieldName":"bloodthirsty", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 53186 + ], + "maxPoints":2 + }, + { + "fieldName":"spikedCollar", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 53182 + ], + "maxPoints":3 + }, + { + "fieldName":"boarsSpeed", + "location":{ + "rowIdx":1, + "colIdx":3 + }, + "spellIds":[ + 19596 + ], + "maxPoints":1 + }, + { + "fieldName":"cullingTheHerd", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 61680, + 61681, + 52858 + ], + "maxPoints":3 + }, + { + "fieldName":"lionhearted", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 53409, + 53411 + ], + "maxPoints":2 + }, + { + "fieldName":"charge", + "location":{ + "rowIdx":2, + "colIdx":3 + }, + "spellIds":[ + 61685 + ], + "maxPoints":1 + }, + { + "fieldName":"heartOfThePheonix", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 55709 + ], + "maxPoints":1 + }, + { + "fieldName":"spidersBite", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 53203 + ], + "maxPoints":3 + }, + { + "fieldName":"greatResistance", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 53427, + 53429 + ], + "maxPoints":3 + }, + { + "fieldName":"rabid", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 53401 + ], + "maxPoints":1 + }, + { + "fieldName":"lickYourWounds", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 53426 + ], + "maxPoints":1 + }, + { + "fieldName":"callOfTheWild", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 53434 + ], + "maxPoints":1 + }, + { + "fieldName":"sharkAttack", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 62759 + ], + "maxPoints":2 + }, + { + "fieldName":"wildHunt", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 62758, + 62762 + ], + "maxPoints":2 + } + ] + } + ] \ No newline at end of file diff --git a/ui/core/talents/trees/hunter_tenacity.json b/ui/core/talents/trees/hunter_tenacity.json new file mode 100644 index 0000000000..e00d3a2f3c --- /dev/null +++ b/ui/core/talents/trees/hunter_tenacity.json @@ -0,0 +1,253 @@ +[ + { + "name":"Tenacity", + "backgroundUrl":"https://wotlkdb.com/static/images/wow/hunterpettalents/bg_2.jpg?85", + "talents":[ + { + "fieldName":"cobraReflexes", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 61682 + ], + "maxPoints":2 + }, + { + "fieldName":"charge", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 61685 + ], + "maxPoints":1 + }, + { + "fieldName":"greatStamina", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 61686 + ], + "maxPoints":3 + }, + { + "fieldName":"naturalArmor", + "location":{ + "rowIdx":0, + "colIdx":3 + }, + "spellIds":[ + 61689 + ], + "maxPoints":2 + }, + { + "fieldName":"spikedCollar", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 53182 + ], + "maxPoints":3 + }, + { + "fieldName":"boarsSpeed", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 19596 + ], + "maxPoints":1 + }, + { + "fieldName":"bloodOfTheRhino", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 53481 + ], + "maxPoints":2 + }, + { + "fieldName":"petBarding", + "location":{ + "rowIdx":1, + "colIdx":3 + }, + "prereqLocation":{ + "rowIdx":0, + "colIdx":3 + }, + "spellIds":[ + 53175 + ], + "maxPoints":2 + }, + { + "fieldName":"cullingTheHerd", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 61680, + 61681, + 52858 + ], + "maxPoints":3 + }, + { + "fieldName":"guardDog", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 53178 + ], + "maxPoints":2 + }, + { + "fieldName":"lionhearted", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 53409, + 53411 + ], + "maxPoints":2 + }, + { + "fieldName":"thunderstomp", + "location":{ + "rowIdx":2, + "colIdx":3 + }, + "spellIds":[ + 63900 + ], + "maxPoints":1 + }, + { + "fieldName":"graceOfTheMantis", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 53450 + ], + "maxPoints":2 + }, + { + "fieldName":"greatResistance", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 53427, + 53429 + ], + "maxPoints":3 + }, + { + "fieldName":"lastStand", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 53478 + ], + "maxPoints":1 + }, + { + "fieldName":"taunt", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 53477 + ], + "maxPoints":1 + }, + { + "fieldName":"roarOfSacrifice", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 53480 + ], + "maxPoints":1 + }, + { + "fieldName":"intervene", + "location":{ + "rowIdx":4, + "colIdx":3 + }, + "spellIds":[ + 53476 + ], + "maxPoints":1 + }, + { + "fieldName":"silverback", + "location":{ + "rowIdx":5, + "colIdx":1 + }, + "spellIds":[ + 62764 + ], + "maxPoints":2 + }, + { + "fieldName":"wildHunt", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 62758, + 62762 + ], + "maxPoints":2 + } + ] + } + ] \ No newline at end of file diff --git a/ui/core/talents/trees/mage.json b/ui/core/talents/trees/mage.json new file mode 100644 index 0000000000..4f5d1f0d6d --- /dev/null +++ b/ui/core/talents/trees/mage.json @@ -0,0 +1,1148 @@ +[ + { + "name": "Arcane", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/81.jpg", + "talents": [ + { + "fieldName": "arcaneSubtlety", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 11210, + 12592 + ], + "maxPoints": 2 + }, + { + "fieldName": "arcaneFocus", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 11222, + 12839, + 12840 + ], + "maxPoints": 3 + }, + { + "fieldName": "arcaneStability", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 11237, + 12463, + 12464, + 16769, + 16770 + ], + "maxPoints": 5 + }, + { + "fieldName": "arcaneFortitude", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 28574, + 54658, + 54659 + ], + "maxPoints": 3 + }, + { + "fieldName": "magicAbsorption", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 29441, + 29444 + ], + "maxPoints": 2 + }, + { + "fieldName": "arcaneConcentration", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 11213, + 12574, + 12575, + 12576, + 12577 + ], + "maxPoints": 5 + }, + { + "fieldName": "magicAttunement", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 11247, + 12606 + ], + "maxPoints": 2 + }, + { + "fieldName": "spellImpact", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 11242, + 12467, + 12469 + ], + "maxPoints": 3 + }, + { + "fieldName": "studentOfTheMind", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 44397, + 44398, + 44399 + ], + "maxPoints": 3 + }, + { + "fieldName": "focusMagic", + "location": { + "rowIdx": 2, + "colIdx": 3 + }, + "spellIds": [ + 54646 + ], + "maxPoints": 1 + }, + { + "fieldName": "arcaneShielding", + "location": { + "rowIdx": 3, + "colIdx": 0 + }, + "spellIds": [ + 11252, + 12605 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedCounterspell", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 11255, + 12598 + ], + "maxPoints": 2 + }, + { + "fieldName": "arcaneMeditation", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 18462, + 18463, + 18464 + ], + "maxPoints": 3 + }, + { + "fieldName": "tormentTheWeak", + "location": { + "rowIdx": 3, + "colIdx": 3 + }, + "spellIds": [ + 29447, + 55339, + 55340 + ], + "maxPoints": 3 + }, + { + "fieldName": "improvedBlink", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 31569, + 31570 + ], + "maxPoints": 2 + }, + { + "fieldName": "presenceOfMind", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 12043 + ], + "maxPoints": 1 + }, + { + "fieldName": "arcaneMind", + "location": { + "rowIdx": 4, + "colIdx": 3 + }, + "spellIds": [ + 11232, + 12500, + 12501, + 12502, + 12503 + ], + "maxPoints": 5 + }, + { + "fieldName": "prismaticCloak", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 31574, + 31575, + 54354 + ], + "maxPoints": 3 + }, + { + "fieldName": "arcaneInstability", + "location": { + "rowIdx": 5, + "colIdx": 1 + }, + "spellIds": [ + 15058, + 15059, + 15060 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "arcanePotency", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 31571, + 31572 + ], + "maxPoints": 2 + }, + { + "fieldName": "arcaneEmpowerment", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 31579, + 31582, + 31583 + ], + "maxPoints": 3 + }, + { + "fieldName": "arcanePower", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 12042 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 5, + "colIdx": 1 + } + }, + { + "fieldName": "incantersAbsorption", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 44394, + 44395, + 44396 + ], + "maxPoints": 3 + }, + { + "fieldName": "arcaneFlows", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 44378, + 44379 + ], + "maxPoints": 2, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "mindMastery", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 31584, + 31585, + 31586, + 31587, + 31588 + ], + "maxPoints": 5 + }, + { + "fieldName": "slow", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 31589 + ], + "maxPoints": 1 + }, + { + "fieldName": "missileBarrage", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 44404, + 54486, + 54488, + 54489, + 54490 + ], + "maxPoints": 5 + }, + { + "fieldName": "netherwindPresence", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 44400, + 44402, + 44403 + ], + "maxPoints": 3 + }, + { + "fieldName": "spellPower", + "location": { + "rowIdx": 9, + "colIdx": 2 + }, + "spellIds": [ + 35578, + 35581 + ], + "maxPoints": 2 + }, + { + "fieldName": "arcaneBarrage", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 44425 + ], + "maxPoints": 1 + } + ] + }, + { + "name": "Fire", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/41.jpg", + "talents": [ + { + "fieldName": "improvedFireBlast", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 11078, + 11080 + ], + "maxPoints": 2 + }, + { + "fieldName": "incineration", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 18459, + 18460, + 54734 + ], + "maxPoints": 3 + }, + { + "fieldName": "improvedFireball", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 11069, + 12338, + 12339, + 12340, + 12341 + ], + "maxPoints": 5 + }, + { + "fieldName": "ignite", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 11119, + 11120, + 12846, + 12847, + 12848 + ], + "maxPoints": 5 + }, + { + "fieldName": "burningDetermination", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 54747, + 54749 + ], + "maxPoints": 2 + }, + { + "fieldName": "worldInFlames", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 11108, + 12349, + 12350 + ], + "maxPoints": 3 + }, + { + "fieldName": "flameThrowing", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 11100, + 12353 + ], + "maxPoints": 2 + }, + { + "fieldName": "impact", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 11103, + 12357, + 12358 + ], + "maxPoints": 3 + }, + { + "fieldName": "pyroblast", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 11366 + ], + "maxPoints": 1 + }, + { + "fieldName": "burningSoul", + "location": { + "rowIdx": 2, + "colIdx": 3 + }, + "spellIds": [ + 11083, + 12351 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedScorch", + "location": { + "rowIdx": 3, + "colIdx": 0 + }, + "spellIds": [ + 11095, + 12872, + 12873 + ], + "maxPoints": 3 + }, + { + "fieldName": "moltenShields", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 11094, + 13043 + ], + "maxPoints": 2 + }, + { + "fieldName": "masterOfElements", + "location": { + "rowIdx": 3, + "colIdx": 3 + }, + "spellIds": [ + 29074, + 29075, + 29076 + ], + "maxPoints": 3 + }, + { + "fieldName": "playingWithFire", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 31638, + 31639, + 31640 + ], + "maxPoints": 3 + }, + { + "fieldName": "criticalMass", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 11115, + 11367, + 11368 + ], + "maxPoints": 3 + }, + { + "fieldName": "blastWave", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 11113 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 2, + "colIdx": 2 + } + }, + { + "fieldName": "blazingSpeed", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 31641, + 31642 + ], + "maxPoints": 2 + }, + { + "fieldName": "firePower", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 11124, + 12378, + 12398, + 12399, + 12400 + ], + "maxPoints": 5 + }, + { + "fieldName": "pyromaniac", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 34293, + 34295, + 34296 + ], + "maxPoints": 3 + }, + { + "fieldName": "combustion", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 11129 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "moltenFury", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 31679, + 31680 + ], + "maxPoints": 2 + }, + { + "fieldName": "fieryPayback", + "location": { + "rowIdx": 7, + "colIdx": 0 + }, + "spellIds": [ + 64353, + 64357 + ], + "maxPoints": 2 + }, + { + "fieldName": "empoweredFire", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 31656, + 31657, + 31658 + ], + "maxPoints": 3 + }, + { + "fieldName": "firestarter", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 44442, + 44443 + ], + "maxPoints": 2, + "prereqLocation": { + "rowIdx": 8, + "colIdx": 1 + } + }, + { + "fieldName": "dragonsBreath", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 31661 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "hotStreak", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 44445, + 44446, + 44448 + ], + "maxPoints": 3 + }, + { + "fieldName": "burnout", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 44449, + 44469, + 44470, + 44471, + 44472 + ], + "maxPoints": 5 + }, + { + "fieldName": "livingBomb", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 44457 + ], + "maxPoints": 1 + } + ] + }, + { + "name": "Frost", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/61.jpg", + "talents": [ + { + "fieldName": "frostbite", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 11071, + 12496, + 12497 + ], + "maxPoints": 3 + }, + { + "fieldName": "improvedFrostbolt", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 11070, + 12473, + 16763, + 16765, + 16766 + ], + "maxPoints": 5 + }, + { + "fieldName": "iceFloes", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 31670, + 31672, + 55094 + ], + "maxPoints": 3 + }, + { + "fieldName": "iceShards", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 11207, + 12672, + 15047 + ], + "maxPoints": 3 + }, + { + "fieldName": "frostWarding", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 11189, + 28332 + ], + "maxPoints": 2 + }, + { + "fieldName": "precision", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 29438, + 29439, + 29440 + ], + "maxPoints": 3 + }, + { + "fieldName": "permafrost", + "location": { + "rowIdx": 1, + "colIdx": 3 + }, + "spellIds": [ + 11175, + 12569, + 12571 + ], + "maxPoints": 3 + }, + { + "fieldName": "piercingIce", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 11151, + 12952, + 12953 + ], + "maxPoints": 3 + }, + { + "fieldName": "icyVeins", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 12472 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedBlizzard", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 11185, + 12487, + 12488 + ], + "maxPoints": 3 + }, + { + "fieldName": "arcticReach", + "location": { + "rowIdx": 3, + "colIdx": 0 + }, + "spellIds": [ + 16757, + 16758 + ], + "maxPoints": 2 + }, + { + "fieldName": "frostChanneling", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 11160, + 12518, + 12519 + ], + "maxPoints": 3 + }, + { + "fieldName": "shatter", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 11170, + 12982, + 12983 + ], + "maxPoints": 3 + }, + { + "fieldName": "coldSnap", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 11958 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedConeOfCold", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 11190, + 12489, + 12490 + ], + "maxPoints": 3 + }, + { + "fieldName": "frozenCore", + "location": { + "rowIdx": 4, + "colIdx": 3 + }, + "spellIds": [ + 31667, + 31668, + 31669 + ], + "maxPoints": 3 + }, + { + "fieldName": "coldAsIce", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 55091, + 55092 + ], + "maxPoints": 2 + }, + { + "fieldName": "wintersChill", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 11180, + 28592, + 28593 + ], + "maxPoints": 3 + }, + { + "fieldName": "shatteredBarrier", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 44745, + 54787 + ], + "maxPoints": 2, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "iceBarrier", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 11426 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "arcticWinds", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 31674, + 31675, + 31676, + 31677, + 31678 + ], + "maxPoints": 5 + }, + { + "fieldName": "empoweredFrostbolt", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 31682, + 31683 + ], + "maxPoints": 2 + }, + { + "fieldName": "fingersOfFrost", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 44543, + 44545 + ], + "maxPoints": 2 + }, + { + "fieldName": "brainFreeze", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 44546, + 44548, + 44549 + ], + "maxPoints": 3 + }, + { + "fieldName": "summonWaterElemental", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 31687 + ], + "maxPoints": 1 + }, + { + "fieldName": "enduringWinter", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 44557, + 44560, + 44561 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 8, + "colIdx": 1 + } + }, + { + "fieldName": "chilledToTheBone", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 44566, + 44567, + 44568, + 44570, + 44571 + ], + "maxPoints": 5 + }, + { + "fieldName": "deepFreeze", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 44572 + ], + "maxPoints": 1 + } + ] + } +] \ No newline at end of file diff --git a/ui/core/talents/trees/paladin.json b/ui/core/talents/trees/paladin.json new file mode 100644 index 0000000000..7d4ceaeeaa --- /dev/null +++ b/ui/core/talents/trees/paladin.json @@ -0,0 +1,949 @@ +[ + { + "name":"Holy", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/classic/382.jpg", + "talents":[ + { + "fieldName":"spiritualFocus", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 20205 + ], + "maxPoints":5 + }, + { + "fieldName":"sealsOfThePure", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 20224, + 20225, + 20330 + ], + "maxPoints":5 + }, + { + "fieldName":"healingLight", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 20237 + ], + "maxPoints":3 + }, + { + "fieldName":"divineIntellect", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 20257 + ], + "maxPoints":5 + }, + { + "fieldName":"unyieldingFaith", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 9453, + 25836 + ], + "maxPoints":2 + }, + { + "fieldName":"auraMastery", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 31821 + ], + "maxPoints":1 + }, + { + "fieldName":"illumination", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 20210, + 20212 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedLayOnHands", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 20234 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedConcentrationAura", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "spellIds":[ + 20254 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedBlessingOfWisdom", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 20244 + ], + "maxPoints":2 + }, + { + "fieldName":"blessedHands", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 53660 + ], + "maxPoints":2 + }, + { + "fieldName":"pureOfHeart", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 31822 + ], + "maxPoints":2 + }, + { + "fieldName":"divineFavor", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 20216 + ], + "maxPoints":1 + }, + { + "fieldName":"sanctifiedLight", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 20359 + ], + "maxPoints":3 + }, + { + "fieldName":"purifyingPower", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 31825 + ], + "maxPoints":2 + }, + { + "fieldName":"holyPower", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 5923, + 5924, + 5925, + 5926, + 25829 + ], + "maxPoints":5 + }, + { + "fieldName":"lightsGrace", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 31833, + 31835 + ], + "maxPoints":3 + }, + { + "fieldName":"holyShock", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 20473 + ], + "maxPoints":1 + }, + { + "fieldName":"blessedLife", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 31828 + ], + "maxPoints":3 + }, + { + "fieldName":"sacredCleansing", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 53551 + ], + "maxPoints":3 + }, + { + "fieldName":"holyGuidance", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 31837 + ], + "maxPoints":5 + }, + { + "fieldName":"divineIllumination", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 31842 + ], + "maxPoints":1 + }, + { + "fieldName":"judgementsOfThePure", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 53671, + 53673, + 54151, + 54154, + 54155 + ], + "maxPoints":5 + }, + { + "fieldName":"infusionOfLight", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 53569, + 53576 + ], + "maxPoints":2 + }, + { + "fieldName":"enlightenedJudgements", + "location":{ + "rowIdx":9, + "colIdx":2 + }, + "spellIds":[ + 53556 + ], + "maxPoints":2 + }, + { + "fieldName":"beaconOfLight", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 53563 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Protection", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/classic/383.jpg", + "talents":[ + { + "fieldName":"divinity", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 63646 + ], + "maxPoints":5 + }, + { + "fieldName":"divineStrength", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 20262 + ], + "maxPoints":5 + }, + { + "fieldName":"stoicism", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 31844, + 31845, + 53519 + ], + "maxPoints":3 + }, + { + "fieldName":"guardiansFavor", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 20174 + ], + "maxPoints":2 + }, + { + "fieldName":"anticipation", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 20096 + ], + "maxPoints":5 + }, + { + "fieldName":"divineSacrifice", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 64205 + ], + "maxPoints":1 + }, + { + "fieldName":"improvedRighteousFury", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 20468 + ], + "maxPoints":3 + }, + { + "fieldName":"toughness", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 20143 + ], + "maxPoints":5 + }, + { + "fieldName":"divineGuardian", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "prereqLocation":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 53527, + 53530 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedHammerOfJustice", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 20487 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedDevotionAura", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 20138 + ], + "maxPoints":3 + }, + { + "fieldName":"blessingOfSanctuary", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 20911 + ], + "maxPoints":1 + }, + { + "fieldName":"reckoning", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 20177, + 20179, + 20181, + 20180, + 20182 + ], + "maxPoints":5 + }, + { + "fieldName":"sacredDuty", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 31848 + ], + "maxPoints":2 + }, + { + "fieldName":"oneHandedWeaponSpecialization", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 20196 + ], + "maxPoints":3 + }, + { + "fieldName":"spiritualAttunement", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 31785, + 33776 + ], + "maxPoints":2 + }, + { + "fieldName":"holyShield", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 20925 + ], + "maxPoints":1 + }, + { + "fieldName":"ardentDefender", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 31850 + ], + "maxPoints":3 + }, + { + "fieldName":"redoubt", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 20127, + 20130, + 20135 + ], + "maxPoints":3 + }, + { + "fieldName":"combatExpertise", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 31858 + ], + "maxPoints":3 + }, + { + "fieldName":"touchedByTheLight", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 53590 + ], + "maxPoints":3 + }, + { + "fieldName":"avengersShield", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 31935 + ], + "maxPoints":1 + }, + { + "fieldName":"guardedByTheLight", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 53583, + 53585 + ], + "maxPoints":2 + }, + { + "fieldName":"shieldOfTheTemplar", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 53709 + ], + "maxPoints":3 + }, + { + "fieldName":"judgementsOfTheJust", + "location":{ + "rowIdx":9, + "colIdx":2 + }, + "spellIds":[ + 53695 + ], + "maxPoints":2 + }, + { + "fieldName":"hammerOfTheRighteous", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 53595 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Retribution", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/classic/381.jpg", + "talents":[ + { + "fieldName":"deflection", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 20060 + ], + "maxPoints":5 + }, + { + "fieldName":"benediction", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 20101 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedJudgements", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 25956 + ], + "maxPoints":2 + }, + { + "fieldName":"heartOfTheCrusader", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 20335 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedBlessingOfMight", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 20042, + 20045 + ], + "maxPoints":2 + }, + { + "fieldName":"vindication", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 9452, + 26016 + ], + "maxPoints":2 + }, + { + "fieldName":"conviction", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 20117 + ], + "maxPoints":5 + }, + { + "fieldName":"sealOfCommand", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 20375 + ], + "maxPoints":1 + }, + { + "fieldName":"pursuitOfJustice", + "location":{ + "rowIdx":2, + "colIdx":3 + }, + "spellIds":[ + 26022 + ], + "maxPoints":2 + }, + { + "fieldName":"eyeForAnEye", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "spellIds":[ + 9799, + 25988 + ], + "maxPoints":2 + }, + { + "fieldName":"sanctityOfBattle", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 32043, + 35396, + 35397 + ], + "maxPoints":3 + }, + { + "fieldName":"crusade", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 31866 + ], + "maxPoints":3 + }, + { + "fieldName":"twoHandedWeaponSpecialization", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 20111 + ], + "maxPoints":3 + }, + { + "fieldName":"sanctifiedRetribution", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 31869 + ], + "maxPoints":1 + }, + { + "fieldName":"vengeance", + "location":{ + "rowIdx":5, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 20049, + 20056, + 20057 + ], + "maxPoints":3 + }, + { + "fieldName":"divinePurpose", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 31871 + ], + "maxPoints":2 + }, + { + "fieldName":"theArtOfWar", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 53486, + 53488 + ], + "maxPoints":2 + }, + { + "fieldName":"repentance", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 20066 + ], + "maxPoints":1 + }, + { + "fieldName":"judgementsOfTheWise", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 31876 + ], + "maxPoints":3 + }, + { + "fieldName":"fanaticism", + "location":{ + "rowIdx":7, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 31879 + ], + "maxPoints":3 + }, + { + "fieldName":"sanctifiedWrath", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 53375 + ], + "maxPoints":2 + }, + { + "fieldName":"swiftRetribution", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 53379, + 53484, + 53648 + ], + "maxPoints":3 + }, + { + "fieldName":"crusaderStrike", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 35395 + ], + "maxPoints":1 + }, + { + "fieldName":"sheathOfLight", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 53501 + ], + "maxPoints":3 + }, + { + "fieldName":"righteousVengeance", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 53380 + ], + "maxPoints":3 + }, + { + "fieldName":"divineStorm", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 53385 + ], + "maxPoints":1 + } + ] + } + ] \ No newline at end of file diff --git a/ui/core/talents/trees/priest.json b/ui/core/talents/trees/priest.json new file mode 100644 index 0000000000..b4860ee3bd --- /dev/null +++ b/ui/core/talents/trees/priest.json @@ -0,0 +1,1104 @@ +[ + { + "name":"Discipline", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/201.jpg", + "talents":[ + { + "fieldName":"unbreakableWill", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 14522, + 14788, + 14789, + 14790, + 14791 + ], + "maxPoints":5 + }, + { + "fieldName":"twinDisciplines", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 47586, + 47587, + 47588, + 52802, + 52803 + ], + "maxPoints":5 + }, + { + "fieldName":"silentResolve", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 14523, + 14784, + 14785 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedInnerFire", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 14747, + 14770, + 14771 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedPowerWordFortitude", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 14749, + 14767 + ], + "maxPoints":2 + }, + { + "fieldName":"martyrdom", + "location":{ + "rowIdx":1, + "colIdx":3 + }, + "spellIds":[ + 14531, + 14774 + ], + "maxPoints":2 + }, + { + "fieldName":"meditation", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 14521, + 14776, + 14777 + ], + "maxPoints":3 + }, + { + "fieldName":"innerFocus", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 14751 + ], + "maxPoints":1 + }, + { + "fieldName":"improvedPowerWordShield", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 14748, + 14768, + 14769 + ], + "maxPoints":3 + }, + { + "fieldName":"absolution", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "spellIds":[ + 33167, + 33171, + 33172 + ], + "maxPoints":3 + }, + { + "fieldName":"mentalAgility", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 14520, + 14780, + 14781 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedManaBurn", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 14750, + 14772 + ], + "maxPoints":2 + }, + { + "fieldName":"reflectiveShield", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 33201, + 33202 + ], + "maxPoints":2 + }, + { + "fieldName":"mentalStrength", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 18551, + 18552, + 18553, + 18554, + 18555 + ], + "maxPoints":5 + }, + { + "fieldName":"soulWarding", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 63574 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":2, + "colIdx":2 + } + }, + { + "fieldName":"focusedPower", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 33186, + 33190 + ], + "maxPoints":2 + }, + { + "fieldName":"enlightenment", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 34908, + 34909, + 34910 + ], + "maxPoints":3 + }, + { + "fieldName":"focusedWill", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 45234, + 45243, + 45244 + ], + "maxPoints":3 + }, + { + "fieldName":"powerInfusion", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 10060 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + } + }, + { + "fieldName":"improvedFlashHeal", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 63504, + 63505, + 63506 + ], + "maxPoints":3 + }, + { + "fieldName":"renewedHope", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 57470, + 57472 + ], + "maxPoints":2 + }, + { + "fieldName":"rapture", + "location":{ + "rowIdx":7, + "colIdx":1 + }, + "spellIds":[ + 47535, + 47536, + 47537 + ], + "maxPoints":3 + }, + { + "fieldName":"aspiration", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 47507, + 47508 + ], + "maxPoints":2 + }, + { + "fieldName":"divineAegis", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 47509, + 47511, + 47515 + ], + "maxPoints":3 + }, + { + "fieldName":"painSuppression", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 33206 + ], + "maxPoints":1 + }, + { + "fieldName":"grace", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 47516, + 47517 + ], + "maxPoints":2 + }, + { + "fieldName":"borrowedTime", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 52795, + 52797, + 52798, + 52799, + 52800 + ], + "maxPoints":5 + }, + { + "fieldName":"penance", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 47540 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Holy", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/202.jpg", + "talents":[ + { + "fieldName":"healingFocus", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 14913, + 15012 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedRenew", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 14908, + 15020, + 17191 + ], + "maxPoints":3 + }, + { + "fieldName":"holySpecialization", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 14889, + 15008, + 15009, + 15010, + 15011 + ], + "maxPoints":5 + }, + { + "fieldName":"spellWarding", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 27900, + 27901, + 27902, + 27903, + 27904 + ], + "maxPoints":5 + }, + { + "fieldName":"divineFury", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 18530, + 18531, + 18533, + 18534, + 18535 + ], + "maxPoints":5 + }, + { + "fieldName":"desperatePrayer", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 19236 + ], + "maxPoints":1 + }, + { + "fieldName":"blessedRecovery", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 27811, + 27815, + 27816 + ], + "maxPoints":3 + }, + { + "fieldName":"inspiration", + "location":{ + "rowIdx":2, + "colIdx":3 + }, + "spellIds":[ + 14892, + 15362, + 15363 + ], + "maxPoints":3 + }, + { + "fieldName":"holyReach", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "spellIds":[ + 27789, + 27790 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedHealing", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 14912, + 15013, + 15014 + ], + "maxPoints":3 + }, + { + "fieldName":"searingLight", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 14909, + 15017 + ], + "maxPoints":2, + "prereqLocation":{ + "rowIdx":1, + "colIdx":2 + } + }, + { + "fieldName":"healingPrayers", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 14911, + 15018 + ], + "maxPoints":2 + }, + { + "fieldName":"spiritOfRedemption", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 20711 + ], + "maxPoints":1 + }, + { + "fieldName":"spiritualGuidance", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 14901, + 15028, + 15029, + 15030, + 15031 + ], + "maxPoints":5 + }, + { + "fieldName":"surgeOfLight", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 33150, + 33154 + ], + "maxPoints":2 + }, + { + "fieldName":"spiritualHealing", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 14898, + 15349, + 15354, + 15355, + 15356 + ], + "maxPoints":5 + }, + { + "fieldName":"holyConcentration", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 34753, + 34859, + 34860 + ], + "maxPoints":3 + }, + { + "fieldName":"lightwell", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 724 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + } + }, + { + "fieldName":"blessedResilience", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 33142, + 33145, + 33146 + ], + "maxPoints":3 + }, + { + "fieldName":"bodyAndSoul", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 64127, + 64129 + ], + "maxPoints":2 + }, + { + "fieldName":"empoweredHealing", + "location":{ + "rowIdx":7, + "colIdx":1 + }, + "spellIds":[ + 33158, + 33159, + 33160, + 33161, + 33162 + ], + "maxPoints":5 + }, + { + "fieldName":"serendipity", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 63730, + 63733, + 63737 + ], + "maxPoints":3 + }, + { + "fieldName":"empoweredRenew", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 63534, + 63542, + 63543 + ], + "maxPoints":3 + }, + { + "fieldName":"circleOfHealing", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 34861 + ], + "maxPoints":1 + }, + { + "fieldName":"testOfFaith", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 47558, + 47559, + 47560 + ], + "maxPoints":3 + }, + { + "fieldName":"divineProvidence", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 47562, + 47564, + 47565, + 47566, + 47567 + ], + "maxPoints":5 + }, + { + "fieldName":"guardianSpirit", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 47788 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Shadow", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/203.jpg", + "talents":[ + { + "fieldName":"spiritTap", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 15270, + 15335, + 15336 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedSpiritTap", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 15337, + 15338 + ], + "maxPoints":2, + "prereqLocation":{ + "rowIdx":0, + "colIdx":0 + } + }, + { + "fieldName":"darkness", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 15259, + 15307, + 15308, + 15309, + 15310 + ], + "maxPoints":5 + }, + { + "fieldName":"shadowAffinity", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 15318, + 15272, + 15320 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedShadowWordPain", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 15275, + 15317 + ], + "maxPoints":2 + }, + { + "fieldName":"shadowFocus", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 15260, + 15327, + 15328 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedPsychicScream", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 15392, + 15448 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedMindBlast", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 15273, + 15312, + 15313, + 15314, + 15316 + ], + "maxPoints":5 + }, + { + "fieldName":"mindFlay", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 15407 + ], + "maxPoints":1 + }, + { + "fieldName":"veiledShadows", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 15274, + 15311 + ], + "maxPoints":2 + }, + { + "fieldName":"shadowReach", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 17322, + 17323 + ], + "maxPoints":2 + }, + { + "fieldName":"shadowWeaving", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 15257, + 15331, + 15332 + ], + "maxPoints":3 + }, + { + "fieldName":"silence", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 15487 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":2, + "colIdx":0 + } + }, + { + "fieldName":"vampiricEmbrace", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 15286 + ], + "maxPoints":1 + }, + { + "fieldName":"improvedVampiricEmbrace", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 27839, + 27840 + ], + "maxPoints":2, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + } + }, + { + "fieldName":"focusedMind", + "location":{ + "rowIdx":4, + "colIdx":3 + }, + "spellIds":[ + 33213, + 33214, + 33215 + ], + "maxPoints":3 + }, + { + "fieldName":"mindMelt", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 14910, + 33371 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedDevouringPlague", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 63625, + 63626, + 63627 + ], + "maxPoints":3 + }, + { + "fieldName":"shadowform", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 15473 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + } + }, + { + "fieldName":"shadowPower", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 33221, + 33222, + 33223, + 33224, + 33225 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedShadowform", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 47569, + 47570 + ], + "maxPoints":2, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + } + }, + { + "fieldName":"misery", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 33191, + 33192, + 33193 + ], + "maxPoints":3 + }, + { + "fieldName":"psychicHorror", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 64044 + ], + "maxPoints":1 + }, + { + "fieldName":"vampiricTouch", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 34914 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + } + }, + { + "fieldName":"painAndSuffering", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 47580, + 47581, + 47582 + ], + "maxPoints":3 + }, + { + "fieldName":"twistedFaith", + "location":{ + "rowIdx":9, + "colIdx":2 + }, + "spellIds":[ + 47573, + 47577, + 47578, + 51166, + 51167 + ], + "maxPoints":5 + }, + { + "fieldName":"dispersion", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 47585 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":8, + "colIdx":1 + } + } + ] + } + ] \ No newline at end of file diff --git a/ui/core/talents/trees/rogue.json b/ui/core/talents/trees/rogue.json new file mode 100644 index 0000000000..491d728dce --- /dev/null +++ b/ui/core/talents/trees/rogue.json @@ -0,0 +1,1094 @@ +[ + { + "name":"Assassination", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/182.jpg", + "talents":[ + { + "fieldName":"improvedEviscerate", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 14162 + ], + "maxPoints":3 + }, + { + "fieldName":"remorselessAttacks", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 14144, + 14148 + ], + "maxPoints":2 + }, + { + "fieldName":"malice", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 14138 + ], + "maxPoints":5 + }, + { + "fieldName":"ruthlessness", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 14156, + 14160 + ], + "maxPoints":3 + }, + { + "fieldName":"bloodSpatter", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 51632, + 51633 + ], + "maxPoints":2 + }, + { + "fieldName":"puncturingWounds", + "location":{ + "rowIdx":1, + "colIdx":3 + }, + "spellIds":[ + 13733, + 13865 + ], + "maxPoints":3 + }, + { + "fieldName":"vigor", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 14983 + ], + "maxPoints":1 + }, + { + "fieldName":"improvedExposeArmor", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 14168 + ], + "maxPoints":2 + }, + { + "fieldName":"lethality", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 14128, + 14132, + 14135 + ], + "maxPoints":5 + }, + { + "fieldName":"vilePoisons", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 16513, + 16514, + 16515 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedPoisons", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 14113, + 14114, + 14115, + 14116, + 14117 + ], + "maxPoints":5 + }, + { + "fieldName":"fleetFooted", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 31208 + ], + "maxPoints":2 + }, + { + "fieldName":"coldBlood", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 14177 + ], + "maxPoints":1 + }, + { + "fieldName":"improvedKidneyShot", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 14174 + ], + "maxPoints":3 + }, + { + "fieldName":"quickRecovery", + "location":{ + "rowIdx":4, + "colIdx":3 + }, + "spellIds":[ + 31244 + ], + "maxPoints":2 + }, + { + "fieldName":"sealFate", + "location":{ + "rowIdx":5, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 14186, + 14190, + 14193 + ], + "maxPoints":5 + }, + { + "fieldName":"murder", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 14158, + 14159 + ], + "maxPoints":2 + }, + { + "fieldName":"deadlyBrew", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 51625, + 51626 + ], + "maxPoints":2 + }, + { + "fieldName":"overkill", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 58426 + ], + "maxPoints":1 + }, + { + "fieldName":"deadenedNerves", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 31380, + 31382, + 31383 + ], + "maxPoints":3 + }, + { + "fieldName":"focusedAttacks", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 51634, + 51635, + 51636 + ], + "maxPoints":3 + }, + { + "fieldName":"findWeakness", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 31234, + 31235, + 31236 + ], + "maxPoints":3 + }, + { + "fieldName":"masterPoisoner", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 31226, + 31227, + 58410 + ], + "maxPoints":3 + }, + { + "fieldName":"mutilate", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 1329 + ], + "maxPoints":1 + }, + { + "fieldName":"turnTheTables", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 51627, + 51628, + 51629 + ], + "maxPoints":3 + }, + { + "fieldName":"cutToTheChase", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 51664, + 51665, + 51666, + 51667, + 51668 + ], + "maxPoints":5 + }, + { + "fieldName":"hungerForBlood", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 51662 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Combat", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/181.jpg", + "talents":[ + { + "fieldName":"improvedGouge", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 13741, + 13793, + 13792 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedSinisterStrike", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 13732, + 13863 + ], + "maxPoints":2 + }, + { + "fieldName":"dualWieldSpecialization", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 13715, + 13848, + 13849, + 13851, + 13852 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedSliceAndDice", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 14165, + 14166 + ], + "maxPoints":2 + }, + { + "fieldName":"deflection", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 13713, + 13853, + 13854 + ], + "maxPoints":3 + }, + { + "fieldName":"precision", + "location":{ + "rowIdx":1, + "colIdx":3 + }, + "spellIds":[ + 13705, + 13832, + 13843, + 13844, + 13845 + ], + "maxPoints":5 + }, + { + "fieldName":"endurance", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 13742, + 13872 + ], + "maxPoints":2 + }, + { + "fieldName":"riposte", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 14251 + ], + "maxPoints":1 + }, + { + "fieldName":"closeQuartersCombat", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 13706, + 13804, + 13805, + 13806, + 13807 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedKick", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "spellIds":[ + 13754, + 13867 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedSprint", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 13743, + 13875 + ], + "maxPoints":2 + }, + { + "fieldName":"lightningReflexes", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 13712, + 13788, + 13789 + ], + "maxPoints":3 + }, + { + "fieldName":"aggression", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 18427, + 18428, + 18429, + 61330, + 61331 + ], + "maxPoints":5 + }, + { + "fieldName":"maceSpecialization", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 13709, + 13800, + 13801, + 13802, + 13803 + ], + "maxPoints":5 + }, + { + "fieldName":"bladeFlurry", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 13877 + ], + "maxPoints":1 + }, + { + "fieldName":"hackAndSlash", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 13960, + 13961, + 13962, + 13963, + 13964 + ], + "maxPoints":5 + }, + { + "fieldName":"weaponExpertise", + "location":{ + "rowIdx":5, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 30919 + ], + "maxPoints":2 + }, + { + "fieldName":"bladeTwisting", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 31124, + 31126 + ], + "maxPoints":2 + }, + { + "fieldName":"vitality", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 31122, + 31123, + 61329 + ], + "maxPoints":3 + }, + { + "fieldName":"adrenalineRush", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 13750 + ], + "maxPoints":1 + }, + { + "fieldName":"nervesOfSteel", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 31130 + ], + "maxPoints":2 + }, + { + "fieldName":"throwingSpecialization", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 5952, + 51679 + ], + "maxPoints":2 + }, + { + "fieldName":"combatPotency", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 35541, + 35550, + 35551, + 35552, + 35553 + ], + "maxPoints":5 + }, + { + "fieldName":"unfairAdvantage", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 51672, + 51674 + ], + "maxPoints":2 + }, + { + "fieldName":"surpriseAttacks", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 32601 + ], + "maxPoints":1 + }, + { + "fieldName":"savageCombat", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 51682, + 58413 + ], + "maxPoints":2 + }, + { + "fieldName":"preyOnTheWeak", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 51685, + 51686, + 51687, + 51688, + 51689 + ], + "maxPoints":5 + }, + { + "fieldName":"killingSpree", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 51690 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Subtlety", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/183.jpg", + "talents":[ + { + "fieldName":"relentlessStrikes", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 14179, + 58422, + 58423, + 58424, + 58425 + ], + "maxPoints":5 + }, + { + "fieldName":"masterOfDeception", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 13958, + 13970, + 13971 + ], + "maxPoints":3 + }, + { + "fieldName":"opportunity", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 14057, + 14072 + ], + "maxPoints":2 + }, + { + "fieldName":"sleightOfHand", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 30892, + 30893 + ], + "maxPoints":2 + }, + { + "fieldName":"dirtyTricks", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 14076, + 14094 + ], + "maxPoints":2 + }, + { + "fieldName":"camouflage", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 13975, + 14062, + 14603 + ], + "maxPoints":3 + }, + { + "fieldName":"elusiveness", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 13981, + 14066 + ], + "maxPoints":2 + }, + { + "fieldName":"ghostlyStrike", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 14278 + ], + "maxPoints":1 + }, + { + "fieldName":"serratedBlades", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 14171, + 14172, + 14173 + ], + "maxPoints":3 + }, + { + "fieldName":"setup", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "spellIds":[ + 13983, + 14070, + 14071 + ], + "maxPoints":3 + }, + { + "fieldName":"initiative", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 13976, + 13979, + 13980 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedAmbush", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 14079, + 14080 + ], + "maxPoints":2 + }, + { + "fieldName":"heightenedSenses", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 30894, + 30895 + ], + "maxPoints":2 + }, + { + "fieldName":"preparation", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 14185 + ], + "maxPoints":1 + }, + { + "fieldName":"dirtyDeeds", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 14082, + 14083 + ], + "maxPoints":2 + }, + { + "fieldName":"hemorrhage", + "location":{ + "rowIdx":4, + "colIdx":3 + }, + "prereqLocation":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 16511 + ], + "maxPoints":1 + }, + { + "fieldName":"masterOfSubtlety", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 31221, + 31222, + 31223 + ], + "maxPoints":3 + }, + { + "fieldName":"deadliness", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 30902, + 30903, + 30904, + 30905, + 30906 + ], + "maxPoints":5 + }, + { + "fieldName":"envelopingShadows", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 31211, + 31212, + 31213 + ], + "maxPoints":3 + }, + { + "fieldName":"premeditation", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 14183 + ], + "maxPoints":1 + }, + { + "fieldName":"cheatDeath", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 31228, + 31229, + 31230 + ], + "maxPoints":3 + }, + { + "fieldName":"sinisterCalling", + "location":{ + "rowIdx":7, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 31216, + 31217, + 31218, + 31219, + 31220 + ], + "maxPoints":5 + }, + { + "fieldName":"waylay", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 51692, + 51696 + ], + "maxPoints":2 + }, + { + "fieldName":"honorAmongThieves", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 51698, + 51670, + 51671 + ], + "maxPoints":3 + }, + { + "fieldName":"shadowstep", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 36554 + ], + "maxPoints":1 + }, + { + "fieldName":"filthyTricks", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 36554 + ], + "maxPoints":2 + }, + { + "fieldName":"slaughterFromTheShadows", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 51708, + 51709, + 51710, + 51711, + 51712 + ], + "maxPoints":5 + }, + { + "fieldName":"shadowDance", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 51713 + ], + "maxPoints":1 + } + ] + } + ] \ No newline at end of file diff --git a/ui/core/talents/trees/shaman.json b/ui/core/talents/trees/shaman.json new file mode 100644 index 0000000000..4a9866e9e7 --- /dev/null +++ b/ui/core/talents/trees/shaman.json @@ -0,0 +1,1020 @@ +[ + { + "name":"Elemental", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/classic/261.jpg", + "talents":[ + { + "fieldName":"convection", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 16039, + 16109 + ], + "maxPoints":5 + }, + { + "fieldName":"concussion", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 16035, + 16105 + ], + "maxPoints":5 + }, + { + "fieldName":"callOfFlame", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 16038, + 16160, + 16161 + ], + "maxPoints":3 + }, + { + "fieldName":"elementalWarding", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 28996, + 28997, + 28998 + ], + "maxPoints":3 + }, + { + "fieldName":"elementalDevastation", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 30160, + 29179, + 29180 + ], + "maxPoints":3 + }, + { + "fieldName":"reverberation", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 16040, + 16113, + 16114, + 16115, + 16116 + ], + "maxPoints":5 + }, + { + "fieldName":"elementalFocus", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 16164 + ], + "maxPoints":1 + }, + { + "fieldName":"elementalFury", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 16089, + 60184, + 60185, + 60187, + 60188 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedFireNova", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "spellIds":[ + 16086, + 16544 + ], + "maxPoints":2 + }, + { + "fieldName":"eyeOfTheStorm", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 29062, + 29064 + ], + "maxPoints":3 + }, + { + "fieldName":"elementalReach", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 28999 + ], + "maxPoints":2 + }, + { + "fieldName":"callOfThunder", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 16041 + ], + "maxPoints":1 + }, + { + "fieldName":"unrelentingStorm", + "location":{ + "rowIdx":4, + "colIdx":3 + }, + "spellIds":[ + 30664, + 30665, + 30666 + ], + "maxPoints":3 + }, + { + "fieldName":"elementalPrecision", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 30672, + 30673, + 30674 + ], + "maxPoints":3 + }, + { + "fieldName":"lightningMastery", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 16578 + ], + "maxPoints":5 + }, + { + "fieldName":"elementalMastery", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 16166 + ], + "maxPoints":1 + }, + { + "fieldName":"stormEarthAndFire", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 51483, + 51485, + 51486 + ], + "maxPoints":3 + }, + { + "fieldName":"boomingEchoes", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 63370, + 63372 + ], + "maxPoints":2 + }, + { + "fieldName":"elementalOath", + "location":{ + "rowIdx":7, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 51466, + 51470 + ], + "maxPoints":2 + }, + { + "fieldName":"lightningOverload", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 30675, + 30678, + 30679 + ], + "maxPoints":3 + }, + { + "fieldName":"astralShift", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 51474, + 51478, + 51479 + ], + "maxPoints":3 + }, + { + "fieldName":"totemOfWrath", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 30706 + ], + "maxPoints":1 + }, + { + "fieldName":"lavaFlows", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 51480, + 51481, + 51482 + ], + "maxPoints":3 + }, + { + "fieldName":"shamanism", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 62097 + ], + "maxPoints":5 + }, + { + "fieldName":"thunderstorm", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 51490 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Enhancement", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/classic/263.jpg", + "talents":[ + { + "fieldName":"enhancingTotems", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 16259, + 16295, + 52456 + ], + "maxPoints":3 + }, + { + "fieldName":"earthsGrasp", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 16043, + 16130 + ], + "maxPoints":2 + }, + { + "fieldName":"ancestralKnowledge", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 17485 + ], + "maxPoints":5 + }, + { + "fieldName":"guardianTotems", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 16258, + 16293 + ], + "maxPoints":2 + }, + { + "fieldName":"thunderingStrikes", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 16255, + 16302 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedGhostWolf", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 16262, + 16287 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedShields", + "location":{ + "rowIdx":1, + "colIdx":3 + }, + "spellIds":[ + 16261, + 16290, + 51881 + ], + "maxPoints":3 + }, + { + "fieldName":"elementalWeapons", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 16266, + 29079, + 29080 + ], + "maxPoints":3 + }, + { + "fieldName":"shamanisticFocus", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 43338 + ], + "maxPoints":1 + }, + { + "fieldName":"anticipation", + "location":{ + "rowIdx":2, + "colIdx":3 + }, + "spellIds":[ + 16254, + 16271 + ], + "maxPoints":3 + }, + { + "fieldName":"flurry", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 16256, + 16281 + ], + "maxPoints":5 + }, + { + "fieldName":"toughness", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 16252, + 16306 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedWindfuryTotem", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 29192, + 29193 + ], + "maxPoints":2 + }, + { + "fieldName":"spiritWeapons", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 16268 + ], + "maxPoints":1 + }, + { + "fieldName":"mentalDexterity", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 51883 + ], + "maxPoints":3 + }, + { + "fieldName":"unleashedRage", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 30802, + 30808, + 30809 + ], + "maxPoints":3 + }, + { + "fieldName":"weaponMastery", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 29082, + 29084, + 29086 + ], + "maxPoints":3 + }, + { + "fieldName":"frozenPower", + "location":{ + "rowIdx":5, + "colIdx":3 + }, + "spellIds":[ + 63373, + 63374 + ], + "maxPoints":2 + }, + { + "fieldName":"dualWieldSpecialization", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 30816, + 30818 + ], + "maxPoints":3 + }, + { + "fieldName":"dualWield", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 30798 + ], + "maxPoints":1 + }, + { + "fieldName":"stormstrike", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 17364 + ], + "maxPoints":1 + }, + { + "fieldName":"staticShock", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 51525 + ], + "maxPoints":3 + }, + { + "fieldName":"lavaLash", + "location":{ + "rowIdx":7, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 60103 + ], + "maxPoints":1 + }, + { + "fieldName":"improvedStormstrike", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 51521, + 51522 + ], + "maxPoints":2 + }, + { + "fieldName":"mentalQuickness", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 30812 + ], + "maxPoints":3 + }, + { + "fieldName":"shamanisticRage", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 30823 + ], + "maxPoints":1 + }, + { + "fieldName":"earthenPower", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 51523, + 51524 + ], + "maxPoints":2 + }, + { + "fieldName":"maelstromWeapon", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 51528 + ], + "maxPoints":5 + }, + { + "fieldName":"feralSpirit", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 51533 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Restoration", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/classic/262.jpg", + "talents":[ + { + "fieldName":"improvedHealingWave", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 16182, + 16226 + ], + "maxPoints":5 + }, + { + "fieldName":"totemicFocus", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 16173, + 16222 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedReincarnation", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 16184, + 16209 + ], + "maxPoints":2 + }, + { + "fieldName":"healingGrace", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 29187, + 29189, + 29191 + ], + "maxPoints":3 + }, + { + "fieldName":"tidalFocus", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 16179, + 16214 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedWaterShield", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 16180, + 16196, + 16198 + ], + "maxPoints":3 + }, + { + "fieldName":"healingFocus", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 16181, + 16230, + 16232 + ], + "maxPoints":3 + }, + { + "fieldName":"tidalForce", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 55198 + ], + "maxPoints":1 + }, + { + "fieldName":"ancestralUealing", + "location":{ + "rowIdx":2, + "colIdx":3 + }, + "spellIds":[ + 16176, + 16235 + ], + "maxPoints":3 + }, + { + "fieldName":"restorativeTotems", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 16187, + 16205 + ], + "maxPoints":3 + }, + { + "fieldName":"tidalMastery", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 16194, + 16218 + ], + "maxPoints":5 + }, + { + "fieldName":"healingWay", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 29206, + 29205, + 29202 + ], + "maxPoints":3 + }, + { + "fieldName":"naturesSwiftness", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 16188 + ], + "maxPoints":1 + }, + { + "fieldName":"focusedMind", + "location":{ + "rowIdx":4, + "colIdx":3 + }, + "spellIds":[ + 30864 + ], + "maxPoints":3 + }, + { + "fieldName":"purification", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 16178, + 16210 + ], + "maxPoints":5 + }, + { + "fieldName":"naturesGuardian", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 30881, + 30883 + ], + "maxPoints":5 + }, + { + "fieldName":"manaTideTotem", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "prereqLocation":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 16190 + ], + "maxPoints":1 + }, + { + "fieldName":"cleanseSpirit", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 51886 + ], + "maxPoints":1 + }, + { + "fieldName":"blessingOfTheEternals", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 51554, + 51555 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedChainHeal", + "location":{ + "rowIdx":7, + "colIdx":1 + }, + "spellIds":[ + 30872 + ], + "maxPoints":2 + }, + { + "fieldName":"naturesBlessing", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 30867 + ], + "maxPoints":3 + }, + { + "fieldName":"ancestralAwakening", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 51556 + ], + "maxPoints":3 + }, + { + "fieldName":"earthShield", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 974 + ], + "maxPoints":1 + }, + { + "fieldName":"improvedEarthShield", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "prereqLocation":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 51560 + ], + "maxPoints":2 + }, + { + "fieldName":"tidalWaves", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 51562 + ], + "maxPoints":5 + }, + { + "fieldName":"riptide", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 61295 + ], + "maxPoints":1 + } + ] + } + ] \ No newline at end of file diff --git a/ui/core/talents/trees/warlock.json b/ui/core/talents/trees/warlock.json new file mode 100644 index 0000000000..3202bacea2 --- /dev/null +++ b/ui/core/talents/trees/warlock.json @@ -0,0 +1,1106 @@ +[ + { + "name":"Affliction", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/302.jpg", + "talents":[ + { + "fieldName":"improvedCurseOfAgony", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 18827, + 18829 + ], + "maxPoints":2 + }, + { + "fieldName":"suppression", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 18174, + 18175, + 18176 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedCorruption", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 17810, + 17811, + 17812, + 17813, + 17814 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedCurseOfWeakness", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 18179, + 18180 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedDrainSoul", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 18213, + 18372 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedLifeTap", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 18182, + 18183 + ], + "maxPoints":2 + }, + { + "fieldName":"soulSiphon", + "location":{ + "rowIdx":1, + "colIdx":3 + }, + "spellIds":[ + 17804, + 17805 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedFear", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 53754, + 53759 + ], + "maxPoints":2 + }, + { + "fieldName":"felConcentration", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 17783, + 17784, + 17785 + ], + "maxPoints":3 + }, + { + "fieldName":"amplifyCurse", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 18288 + ], + "maxPoints":1 + }, + { + "fieldName":"grimReach", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "spellIds":[ + 18218, + 18219 + ], + "maxPoints":2 + }, + { + "fieldName":"nightfall", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 18094, + 18095 + ], + "maxPoints":2 + }, + { + "fieldName":"empoweredCorruption", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 32381, + 32382, + 32383 + ], + "maxPoints":3 + }, + { + "fieldName":"shadowEmbrace", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 32385, + 32387, + 32392, + 32393, + 32394 + ], + "maxPoints":5 + }, + { + "fieldName":"siphonLife", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 63108 + ], + "maxPoints":1 + }, + { + "fieldName":"curseOfExhaustion", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 18223 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":2, + "colIdx":2 + } + }, + { + "fieldName":"improvedFelhunter", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 54037, + 54038 + ], + "maxPoints":2 + }, + { + "fieldName":"shadowMastery", + "location":{ + "rowIdx":5, + "colIdx":1 + }, + "spellIds":[ + 18271, + 18272, + 18273, + 18274, + 18275 + ], + "maxPoints":5, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + } + }, + { + "fieldName":"eradication", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 47195, + 47196, + 47197 + ], + "maxPoints":3 + }, + { + "fieldName":"contagion", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 30060, + 30061, + 30062, + 30063, + 30064 + ], + "maxPoints":5 + }, + { + "fieldName":"darkPact", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 18220 + ], + "maxPoints":1 + }, + { + "fieldName":"improvedHowlOfTerror", + "location":{ + "rowIdx":7, + "colIdx":0 + }, + "spellIds":[ + 30054, + 30057 + ], + "maxPoints":2 + }, + { + "fieldName":"malediction", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 32477, + 32483, + 32484 + ], + "maxPoints":3 + }, + { + "fieldName":"deathsEmbrace", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 47198, + 47199, + 47200 + ], + "maxPoints":3 + }, + { + "fieldName":"unstableAffliction", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 30108 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + } + }, + { + "fieldName":"pandemic", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 58435 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":8, + "colIdx":1 + } + }, + { + "fieldName":"everlastingAffliction", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 47201, + 47202, + 47203, + 47204, + 47205 + ], + "maxPoints":5 + }, + { + "fieldName":"haunt", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 48181 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Demonology", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/303.jpg", + "talents":[ + { + "fieldName":"improvedHealthstone", + "location":{ + "rowIdx":0, + "colIdx":0 + }, + "spellIds":[ + 18692, + 18693 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedImp", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 18694, + 18695, + 18696 + ], + "maxPoints":3 + }, + { + "fieldName":"demonicEmbrace", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 18697, + 18698, + 18699 + ], + "maxPoints":3 + }, + { + "fieldName":"felSynergy", + "location":{ + "rowIdx":0, + "colIdx":3 + }, + "spellIds":[ + 47230, + 47231 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedHealthFunnel", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 18703, + 18704 + ], + "maxPoints":2 + }, + { + "fieldName":"demonicBrutality", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 18705, + 18706, + 18707 + ], + "maxPoints":3 + }, + { + "fieldName":"felVitality", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 18731, + 18743, + 18744 + ], + "maxPoints":3 + }, + { + "fieldName":"improvedSayaad", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 18754, + 18755, + 18756 + ], + "maxPoints":3 + }, + { + "fieldName":"soulLink", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 19028 + ], + "maxPoints":1 + }, + { + "fieldName":"felDomination", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 18708 + ], + "maxPoints":1 + }, + { + "fieldName":"demonicAegis", + "location":{ + "rowIdx":2, + "colIdx":3 + }, + "spellIds":[ + 30143, + 30144, + 30145 + ], + "maxPoints":3 + }, + { + "fieldName":"unholyPower", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 18769, + 18770, + 18771, + 18772, + 18773 + ], + "maxPoints":5, + "prereqLocation":{ + "rowIdx":2, + "colIdx":1 + } + }, + { + "fieldName":"masterSummoner", + "location":{ + "rowIdx":3, + "colIdx":2 + }, + "spellIds":[ + 18709, + 18710 + ], + "maxPoints":2, + "prereqLocation":{ + "rowIdx":2, + "colIdx":2 + } + }, + { + "fieldName":"manaFeed", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 30326 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":3, + "colIdx":1 + } + }, + { + "fieldName":"masterConjuror", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 18767, + 18768 + ], + "maxPoints":2 + }, + { + "fieldName":"masterDemonologist", + "location":{ + "rowIdx":5, + "colIdx":1 + }, + "spellIds":[ + 23785, + 23822, + 23823, + 23824, + 23825 + ], + "maxPoints":5, + "prereqLocation":{ + "rowIdx":3, + "colIdx":1 + } + }, + { + "fieldName":"moltenCore", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 47245, + 47246, + 47247 + ], + "maxPoints":3 + }, + { + "fieldName":"demonicResilience", + "location":{ + "rowIdx":6, + "colIdx":0 + }, + "spellIds":[ + 30319, + 30320, + 30321 + ], + "maxPoints":3 + }, + { + "fieldName":"demonicEmpowerment", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 47193 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":5, + "colIdx":1 + } + }, + { + "fieldName":"demonicKnowledge", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 35691, + 35692, + 35693 + ], + "maxPoints":3 + }, + { + "fieldName":"demonicTactics", + "location":{ + "rowIdx":7, + "colIdx":1 + }, + "spellIds":[ + 30242, + 30245, + 30246, + 30247, + 30248 + ], + "maxPoints":5 + }, + { + "fieldName":"decimation", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 63156, + 63158 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedDemonicTactics", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 54347, + 54348, + 54349 + ], + "maxPoints":3, + "prereqLocation":{ + "rowIdx":7, + "colIdx":1 + } + }, + { + "fieldName":"summonFelguard", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 30146 + ], + "maxPoints":1 + }, + { + "fieldName":"nemesis", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 63117, + 63121, + 63123 + ], + "maxPoints":3 + }, + { + "fieldName":"demonicPact", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 47236, + 47237, + 47238, + 47239, + 47240 + ], + "maxPoints":5 + }, + { + "fieldName":"metamorphosis", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 59672 + ], + "maxPoints":1 + } + ] + }, + { + "name":"Destruction", + "backgroundUrl":"https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/301.jpg", + "talents":[ + { + "fieldName":"improvedShadowBolt", + "location":{ + "rowIdx":0, + "colIdx":1 + }, + "spellIds":[ + 17793, + 17796, + 17801, + 17802, + 17803 + ], + "maxPoints":5 + }, + { + "fieldName":"bane", + "location":{ + "rowIdx":0, + "colIdx":2 + }, + "spellIds":[ + 17788, + 17789, + 17790, + 17791, + 17792 + ], + "maxPoints":5 + }, + { + "fieldName":"aftermath", + "location":{ + "rowIdx":1, + "colIdx":0 + }, + "spellIds":[ + 18119, + 18120 + ], + "maxPoints":2 + }, + { + "fieldName":"moltenSkin", + "location":{ + "rowIdx":1, + "colIdx":1 + }, + "spellIds":[ + 63349, + 63350, + 63351 + ], + "maxPoints":3 + }, + { + "fieldName":"cataclysm", + "location":{ + "rowIdx":1, + "colIdx":2 + }, + "spellIds":[ + 17778, + 17779, + 17780 + ], + "maxPoints":3 + }, + { + "fieldName":"demonicPower", + "location":{ + "rowIdx":2, + "colIdx":0 + }, + "spellIds":[ + 18126, + 18127 + ], + "maxPoints":2 + }, + { + "fieldName":"shadowburn", + "location":{ + "rowIdx":2, + "colIdx":1 + }, + "spellIds":[ + 17877 + ], + "maxPoints":1 + }, + { + "fieldName":"ruin", + "location":{ + "rowIdx":2, + "colIdx":2 + }, + "spellIds":[ + 17959, + 59738, + 59739, + 59740, + 59741 + ], + "maxPoints":5 + }, + { + "fieldName":"intensity", + "location":{ + "rowIdx":3, + "colIdx":0 + }, + "spellIds":[ + 18135, + 18136 + ], + "maxPoints":2 + }, + { + "fieldName":"destructiveReach", + "location":{ + "rowIdx":3, + "colIdx":1 + }, + "spellIds":[ + 17917, + 17918 + ], + "maxPoints":2 + }, + { + "fieldName":"improvedSearingPain", + "location":{ + "rowIdx":3, + "colIdx":3 + }, + "spellIds":[ + 17927, + 17929, + 17930 + ], + "maxPoints":3 + }, + { + "fieldName":"backlash", + "location":{ + "rowIdx":4, + "colIdx":0 + }, + "spellIds":[ + 34935, + 34938, + 34939 + ], + "maxPoints":3, + "prereqLocation":{ + "rowIdx":3, + "colIdx":0 + } + }, + { + "fieldName":"improvedImmolate", + "location":{ + "rowIdx":4, + "colIdx":1 + }, + "spellIds":[ + 17815, + 17833, + 17834 + ], + "maxPoints":3 + }, + { + "fieldName":"devastation", + "location":{ + "rowIdx":4, + "colIdx":2 + }, + "spellIds":[ + 18130 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":2, + "colIdx":2 + } + }, + { + "fieldName":"netherProtection", + "location":{ + "rowIdx":5, + "colIdx":0 + }, + "spellIds":[ + 30299, + 30301, + 30302 + ], + "maxPoints":3 + }, + { + "fieldName":"emberstorm", + "location":{ + "rowIdx":5, + "colIdx":2 + }, + "spellIds":[ + 17954, + 17955, + 17956, + 17957, + 17958 + ], + "maxPoints":5 + }, + { + "fieldName":"conflagrate", + "location":{ + "rowIdx":6, + "colIdx":1 + }, + "spellIds":[ + 17962 + ], + "maxPoints":1, + "prereqLocation":{ + "rowIdx":4, + "colIdx":1 + } + }, + { + "fieldName":"soulLeech", + "location":{ + "rowIdx":6, + "colIdx":2 + }, + "spellIds":[ + 30293, + 30295, + 30296 + ], + "maxPoints":3 + }, + { + "fieldName":"pyroclasm", + "location":{ + "rowIdx":6, + "colIdx":3 + }, + "spellIds":[ + 18096, + 18073, + 63245 + ], + "maxPoints":3 + }, + { + "fieldName":"shadowAndFlame", + "location":{ + "rowIdx":7, + "colIdx":1 + }, + "spellIds":[ + 30288, + 30289, + 30290, + 30291, + 30292 + ], + "maxPoints":5 + }, + { + "fieldName":"improvedSoulLeech", + "location":{ + "rowIdx":7, + "colIdx":2 + }, + "spellIds":[ + 54117, + 54118 + ], + "maxPoints":2, + "prereqLocation":{ + "rowIdx":6, + "colIdx":2 + } + }, + { + "fieldName":"backdraft", + "location":{ + "rowIdx":8, + "colIdx":0 + }, + "spellIds":[ + 47258, + 47259, + 47260 + ], + "maxPoints":3, + "prereqLocation":{ + "rowIdx":6, + "colIdx":1 + } + }, + { + "fieldName":"shadowfury", + "location":{ + "rowIdx":8, + "colIdx":1 + }, + "spellIds":[ + 30283 + ], + "maxPoints":1 + }, + { + "fieldName":"empoweredImp", + "location":{ + "rowIdx":8, + "colIdx":2 + }, + "spellIds":[ + 47220, + 47221, + 47223 + ], + "maxPoints":3 + }, + { + "fieldName":"fireAndBrimstone", + "location":{ + "rowIdx":9, + "colIdx":1 + }, + "spellIds":[ + 47266, + 47267, + 47268, + 47269, + 47270 + ], + "maxPoints":5 + }, + { + "fieldName":"chaosBolt", + "location":{ + "rowIdx":10, + "colIdx":1 + }, + "spellIds":[ + 50796 + ], + "maxPoints":1 + } + ] + } + ] \ No newline at end of file diff --git a/ui/core/talents/trees/warrior.json b/ui/core/talents/trees/warrior.json new file mode 100644 index 0000000000..841ca7962b --- /dev/null +++ b/ui/core/talents/trees/warrior.json @@ -0,0 +1,1130 @@ +[ + { + "name": "Arms", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/161.jpg", + "talents": [ + { + "fieldName": "improvedHeroicStrike", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 12282, + 12663, + 12664 + ], + "maxPoints": 3 + }, + { + "fieldName": "deflection", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 16462, + 16463, + 16464, + 16465, + 16466 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedRend", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 12286, + 12658 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedCharge", + "location": { + "rowIdx": 1, + "colIdx": 0 + }, + "spellIds": [ + 12285, + 12697 + ], + "maxPoints": 2 + }, + { + "fieldName": "ironWill", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 12300, + 12959, + 12960 + ], + "maxPoints": 3 + }, + { + "fieldName": "tacticalMastery", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 12295, + 12676, + 12677 + ], + "maxPoints": 3 + }, + { + "fieldName": "improvedOverpower", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 12290, + 12963 + ], + "maxPoints": 2 + }, + { + "fieldName": "angerManagement", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 12296 + ], + "maxPoints": 1 + }, + { + "fieldName": "impale", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 16493, + 16494 + ], + "maxPoints": 2 + }, + { + "fieldName": "deepWounds", + "location": { + "rowIdx": 2, + "colIdx": 3 + }, + "spellIds": [ + 12834, + 12849, + 12867 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 2, + "colIdx": 2 + } + }, + { + "fieldName": "twoHandedWeaponSpecialization", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 12163, + 12711, + 12712 + ], + "maxPoints": 3 + }, + { + "fieldName": "tasteForBlood", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 56636, + 56637, + 56638 + ], + "maxPoints": 3 + }, + { + "fieldName": "poleaxeSpecialization", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 12700, + 12781, + 12783, + 12784, + 12785 + ], + "maxPoints": 5 + }, + { + "fieldName": "sweepingStrikes", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 12328 + ], + "maxPoints": 1 + }, + { + "fieldName": "maceSpecialization", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 12284, + 12701, + 12702, + 12703, + 12704 + ], + "maxPoints": 5 + }, + { + "fieldName": "swordSpecialization", + "location": { + "rowIdx": 4, + "colIdx": 3 + }, + "spellIds": [ + 12281, + 12812, + 12813, + 12814, + 12815 + ], + "maxPoints": 5 + }, + { + "fieldName": "weaponMastery", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 20504, + 20505 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedHamstring", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 12289, + 12668, + 23695 + ], + "maxPoints": 3 + }, + { + "fieldName": "trauma", + "location": { + "rowIdx": 5, + "colIdx": 3 + }, + "spellIds": [ + 46854, + 46855 + ], + "maxPoints": 2 + }, + { + "fieldName": "secondWind", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 29834, + 29838 + ], + "maxPoints": 2 + }, + { + "fieldName": "mortalStrike", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 12294 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "strengthOfArms", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 46865, + 46866 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedSlam", + "location": { + "rowIdx": 6, + "colIdx": 3 + }, + "spellIds": [ + 12862, + 12330 + ], + "maxPoints": 2 + }, + { + "fieldName": "juggernaut", + "location": { + "rowIdx": 7, + "colIdx": 0 + }, + "spellIds": [ + 64976 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedMortalStrike", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 35446, + 35448, + 35449 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "unrelentingAssault", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 46859, + 46860 + ], + "maxPoints": 2 + }, + { + "fieldName": "suddenDeath", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 29723, + 29724, + 29725 + ], + "maxPoints": 3 + }, + { + "fieldName": "endlessRage", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 29623 + ], + "maxPoints": 1 + }, + { + "fieldName": "bloodFrenzy", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 29836, + 29859 + ], + "maxPoints": 2 + }, + { + "fieldName": "wreckingCrew", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 46867, + 56611, + 56612, + 56613, + 56614 + ], + "maxPoints": 5 + }, + { + "fieldName": "bladestorm", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 46924 + ], + "maxPoints": 1 + } + ] + }, + { + "name": "Fury", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/164.jpg", + "talents": [ + { + "fieldName": "armoredToTheTeeth", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 61216, + 61221, + 61222 + ], + "maxPoints": 3 + }, + { + "fieldName": "boomingVoice", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 12321, + 12835 + ], + "maxPoints": 2 + }, + { + "fieldName": "cruelty", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 12320, + 12852, + 12853, + 12855, + 12856 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedDemoralizingShout", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 12324, + 12876, + 12877, + 12878, + 12879 + ], + "maxPoints": 5 + }, + { + "fieldName": "unbridledWrath", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 12322, + 12999, + 13000, + 13001, + 13002 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedCleave", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 12329, + 12950, + 20496 + ], + "maxPoints": 3 + }, + { + "fieldName": "piercingHowl", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 12323 + ], + "maxPoints": 1 + }, + { + "fieldName": "bloodCraze", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 16487, + 16489, + 16492 + ], + "maxPoints": 3 + }, + { + "fieldName": "commandingPresence", + "location": { + "rowIdx": 2, + "colIdx": 3 + }, + "spellIds": [ + 12318, + 12857, + 12858, + 12860, + 12861 + ], + "maxPoints": 5 + }, + { + "fieldName": "dualWieldSpecialization", + "location": { + "rowIdx": 3, + "colIdx": 0 + }, + "spellIds": [ + 23584, + 23585, + 23586, + 23587, + 23588 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedExecute", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 20502, + 20503 + ], + "maxPoints": 2 + }, + { + "fieldName": "enrage", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 12317, + 13045, + 13046, + 13047, + 13048 + ], + "maxPoints": 5 + }, + { + "fieldName": "precision", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 29590, + 29591, + 29592 + ], + "maxPoints": 3 + }, + { + "fieldName": "deathWish", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 12292 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedIntercept", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 29888, + 29889 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedBerserkerRage", + "location": { + "rowIdx": 5, + "colIdx": 0 + }, + "spellIds": [ + 20500, + 20501 + ], + "maxPoints": 2 + }, + { + "fieldName": "flurry", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 12319, + 12971, + 12972, + 12973, + 12974 + ], + "maxPoints": 5 + }, + { + "fieldName": "intensifyRage", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 46908, + 46909, + 56924 + ], + "maxPoints": 3 + }, + { + "fieldName": "bloodthirst", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 23881 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "improvedWhirlwind", + "location": { + "rowIdx": 6, + "colIdx": 3 + }, + "spellIds": [ + 29721, + 29776 + ], + "maxPoints": 2 + }, + { + "fieldName": "furiousAttacks", + "location": { + "rowIdx": 7, + "colIdx": 0 + }, + "spellIds": [ + 46910, + 46911 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedBerserkerStance", + "location": { + "rowIdx": 7, + "colIdx": 3 + }, + "spellIds": [ + 29759, + 29760, + 29761, + 29762, + 29763 + ], + "maxPoints": 5 + }, + { + "fieldName": "heroicFury", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 60970 + ], + "maxPoints": 1 + }, + { + "fieldName": "rampage", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 29801 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "bloodsurge", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 46913, + 46914, + 46915 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 6, + "colIdx": 1 + } + }, + { + "fieldName": "unendingFury", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 56927, + 56929, + 56930, + 56931, + 56932 + ], + "maxPoints": 5 + }, + { + "fieldName": "titansGrip", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 46917 + ], + "maxPoints": 1 + } + ] + }, + { + "name": "Protection", + "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/163.jpg", + "talents": [ + { + "fieldName": "improvedBloodrage", + "location": { + "rowIdx": 0, + "colIdx": 0 + }, + "spellIds": [ + 12301, + 12818 + ], + "maxPoints": 2 + }, + { + "fieldName": "shieldSpecialization", + "location": { + "rowIdx": 0, + "colIdx": 1 + }, + "spellIds": [ + 12298, + 12724, + 12725, + 12726, + 12727 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedThunderClap", + "location": { + "rowIdx": 0, + "colIdx": 2 + }, + "spellIds": [ + 12287, + 12665, + 12666 + ], + "maxPoints": 3 + }, + { + "fieldName": "incite", + "location": { + "rowIdx": 1, + "colIdx": 1 + }, + "spellIds": [ + 50685, + 50686, + 50687 + ], + "maxPoints": 3 + }, + { + "fieldName": "anticipation", + "location": { + "rowIdx": 1, + "colIdx": 2 + }, + "spellIds": [ + 55129, + 12750, + 12751, + 12752, + 12753 + ], + "maxPoints": 5 + }, + { + "fieldName": "lastStand", + "location": { + "rowIdx": 2, + "colIdx": 0 + }, + "spellIds": [ + 12975 + ], + "maxPoints": 1 + }, + { + "fieldName": "improvedRevenge", + "location": { + "rowIdx": 2, + "colIdx": 1 + }, + "spellIds": [ + 12797, + 12799 + ], + "maxPoints": 2 + }, + { + "fieldName": "shieldMastery", + "location": { + "rowIdx": 2, + "colIdx": 2 + }, + "spellIds": [ + 29598, + 29599 + ], + "maxPoints": 2 + }, + { + "fieldName": "toughness", + "location": { + "rowIdx": 2, + "colIdx": 3 + }, + "spellIds": [ + 12299, + 12761, + 12762, + 12763, + 12764 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedSpellReflection", + "location": { + "rowIdx": 3, + "colIdx": 0 + }, + "spellIds": [ + 59088, + 59089 + ], + "maxPoints": 2 + }, + { + "fieldName": "improvedDisarm", + "location": { + "rowIdx": 3, + "colIdx": 1 + }, + "spellIds": [ + 12313, + 12804 + ], + "maxPoints": 2 + }, + { + "fieldName": "puncture", + "location": { + "rowIdx": 3, + "colIdx": 2 + }, + "spellIds": [ + 12308, + 12810, + 12811 + ], + "maxPoints": 3 + }, + { + "fieldName": "improvedDisciplines", + "location": { + "rowIdx": 4, + "colIdx": 0 + }, + "spellIds": [ + 12312, + 12803 + ], + "maxPoints": 2 + }, + { + "fieldName": "concussionBlow", + "location": { + "rowIdx": 4, + "colIdx": 1 + }, + "spellIds": [ + 12809 + ], + "maxPoints": 1 + }, + { + "fieldName": "gagOrder", + "location": { + "rowIdx": 4, + "colIdx": 2 + }, + "spellIds": [ + 12311, + 12958 + ], + "maxPoints": 2 + }, + { + "fieldName": "oneHandedWeaponSpecialization", + "location": { + "rowIdx": 5, + "colIdx": 2 + }, + "spellIds": [ + 16538, + 16539, + 16540, + 16541, + 16542 + ], + "maxPoints": 5 + }, + { + "fieldName": "improvedDefensiveStance", + "location": { + "rowIdx": 6, + "colIdx": 0 + }, + "spellIds": [ + 29593, + 29594 + ], + "maxPoints": 2 + }, + { + "fieldName": "vigilance", + "location": { + "rowIdx": 6, + "colIdx": 1 + }, + "spellIds": [ + 50720 + ], + "maxPoints": 1, + "prereqLocation": { + "rowIdx": 4, + "colIdx": 1 + } + }, + { + "fieldName": "focusedRage", + "location": { + "rowIdx": 6, + "colIdx": 2 + }, + "spellIds": [ + 29787, + 29790, + 29792 + ], + "maxPoints": 3 + }, + { + "fieldName": "vitality", + "location": { + "rowIdx": 7, + "colIdx": 1 + }, + "spellIds": [ + 29140, + 29143, + 29144 + ], + "maxPoints": 3 + }, + { + "fieldName": "safeguard", + "location": { + "rowIdx": 7, + "colIdx": 2 + }, + "spellIds": [ + 46945, + 46949 + ], + "maxPoints": 2 + }, + { + "fieldName": "warbringer", + "location": { + "rowIdx": 8, + "colIdx": 0 + }, + "spellIds": [ + 57499 + ], + "maxPoints": 1 + }, + { + "fieldName": "devastate", + "location": { + "rowIdx": 8, + "colIdx": 1 + }, + "spellIds": [ + 20243 + ], + "maxPoints": 1 + }, + { + "fieldName": "criticalBlock", + "location": { + "rowIdx": 8, + "colIdx": 2 + }, + "spellIds": [ + 47294, + 47295, + 47296 + ], + "maxPoints": 3 + }, + { + "fieldName": "swordAndBoard", + "location": { + "rowIdx": 9, + "colIdx": 1 + }, + "spellIds": [ + 46951, + 46952, + 46953 + ], + "maxPoints": 3, + "prereqLocation": { + "rowIdx": 8, + "colIdx": 1 + } + }, + { + "fieldName": "damageShield", + "location": { + "rowIdx": 9, + "colIdx": 2 + }, + "spellIds": [ + 58872, + 58874 + ], + "maxPoints": 2 + }, + { + "fieldName": "shockwave", + "location": { + "rowIdx": 10, + "colIdx": 1 + }, + "spellIds": [ + 46968 + ], + "maxPoints": 1 + } + ] + } +] \ No newline at end of file diff --git a/ui/core/talents/warlock.ts b/ui/core/talents/warlock.ts index 768ddd6ad0..ab7c339297 100644 --- a/ui/core/talents/warlock.ts +++ b/ui/core/talents/warlock.ts @@ -3,1112 +3,9 @@ import { WarlockTalents, WarlockMajorGlyph, WarlockMinorGlyph } from '../proto/w import { GlyphsConfig } from './glyphs_picker.js'; import { TalentsConfig, newTalentsConfig } from './talents_picker.js'; -export const warlockTalentsConfig: TalentsConfig = newTalentsConfig([ - { - name: "Affliction", - backgroundUrl: "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/302.jpg", - talents: [ - { - fieldName: "improvedCurseOfAgony", - location: { - rowIdx: 0, - colIdx: 0 - }, - spellIds: [ - 18827, - 18829 - ], - maxPoints: 2 - }, - { - fieldName: "suppression", - location: { - rowIdx: 0, - colIdx: 1 - }, - spellIds: [ - 18174, - 18175, - 18176 - ], - maxPoints: 3 - }, - { - fieldName: "improvedCorruption", - location: { - rowIdx: 0, - colIdx: 2 - }, - spellIds: [ - 17810, - 17811, - 17812, - 17813, - 17814 - ], - maxPoints: 5 - }, - { - fieldName: "improvedCurseOfWeakness", - location: { - rowIdx: 1, - colIdx: 0 - }, - spellIds: [ - 18179, - 18180 - ], - maxPoints: 2 - }, - { - fieldName: "improvedDrainSoul", - location: { - rowIdx: 1, - colIdx: 1 - }, - spellIds: [ - 18213, - 18372 - ], - maxPoints: 2 - }, - { - fieldName: "improvedLifeTap", - location: { - rowIdx: 1, - colIdx: 2 - }, - spellIds: [ - 18182, - 18183 - ], - maxPoints: 2 - }, - { - fieldName: "soulSiphon", - location: { - rowIdx: 1, - colIdx: 3 - }, - spellIds: [ - 17804, - 17805 - ], - maxPoints: 2 - }, - { - fieldName: "improvedFear", - location: { - rowIdx: 2, - colIdx: 0 - }, - spellIds: [ - 53754, - 53759 - ], - maxPoints: 2 - }, - { - fieldName: "felConcentration", - location: { - rowIdx: 2, - colIdx: 1 - }, - spellIds: [ - 17783, - 17784, - 17785 - ], - maxPoints: 3 - }, - { - fieldName: "amplifyCurse", - location: { - rowIdx: 2, - colIdx: 2 - }, - spellIds: [ - 18288 - ], - maxPoints: 1 - }, - { - fieldName: "grimReach", - location: { - rowIdx: 3, - colIdx: 0 - }, - spellIds: [ - 18218, - 18219 - ], - maxPoints: 2 - }, - { - fieldName: "nightfall", - location: { - rowIdx: 3, - colIdx: 1 - }, - spellIds: [ - 18094, - 18095 - ], - maxPoints: 2 - }, - { - fieldName: "empoweredCorruption", - location: { - rowIdx: 3, - colIdx: 3 - }, - spellIds: [ - 32381, - 32382, - 32383 - ], - maxPoints: 3 - }, - { - fieldName: "shadowEmbrace", - location: { - rowIdx: 4, - colIdx: 0 - }, - spellIds: [ - 32385, - 32387, - 32392, - 32393, - 32394 - ], - maxPoints: 5 - }, - { - fieldName: "siphonLife", - location: { - rowIdx: 4, - colIdx: 1 - }, - spellIds: [ - 63108 - ], - maxPoints: 1 - }, - { - fieldName: "curseOfExhaustion", - location: { - rowIdx: 4, - colIdx: 2 - }, - spellIds: [ - 18223 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 2, - colIdx: 2 - } - }, - { - fieldName: "improvedFelhunter", - location: { - rowIdx: 5, - colIdx: 0 - }, - spellIds: [ - 54037, - 54038 - ], - maxPoints: 2 - }, - { - fieldName: "shadowMastery", - location: { - rowIdx: 5, - colIdx: 1 - }, - spellIds: [ - 18271, - 18272, - 18273, - 18274, - 18275 - ], - maxPoints: 5, - "prereqLocation": { - rowIdx: 4, - colIdx: 1 - } - }, - { - fieldName: "eradication", - location: { - rowIdx: 6, - colIdx: 0 - }, - spellIds: [ - 47195, - 47196, - 47197 - ], - maxPoints: 3 - }, - { - fieldName: "contagion", - location: { - rowIdx: 6, - colIdx: 1 - }, - spellIds: [ - 30060, - 30061, - 30062, - 30063, - 30064 - ], - maxPoints: 5 - }, - { - fieldName: "darkPact", - location: { - rowIdx: 6, - colIdx: 2 - }, - spellIds: [ - 18220 - ], - maxPoints: 1 - }, - { - fieldName: "improvedHowlOfTerror", - location: { - rowIdx: 7, - colIdx: 0 - }, - spellIds: [ - 30054, - 30057 - ], - maxPoints: 2 - }, - { - fieldName: "malediction", - location: { - rowIdx: 7, - colIdx: 2 - }, - spellIds: [ - 32477, - 32483, - 32484 - ], - maxPoints: 3 - }, - { - fieldName: "deathsEmbrace", - location: { - rowIdx: 8, - colIdx: 0 - }, - spellIds: [ - 47198, - 47199, - 47200 - ], - maxPoints: 3 - }, - { - fieldName: "unstableAffliction", - location: { - rowIdx: 8, - colIdx: 1 - }, - spellIds: [ - 30108 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 6, - colIdx: 1 - } - }, - { - fieldName: "pandemic", - location: { - rowIdx: 8, - colIdx: 2 - }, - spellIds: [ - 58435 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 8, - colIdx: 1 - } - }, - { - fieldName: "everlastingAffliction", - location: { - rowIdx: 9, - colIdx: 1 - }, - spellIds: [ - 47201, - 47202, - 47203, - 47204, - 47205 - ], - maxPoints: 5 - }, - { - fieldName: "haunt", - location: { - rowIdx: 10, - colIdx: 1 - }, - spellIds: [ - 48181 - ], - maxPoints: 1 - } - ] - }, - { - name: "Demonology", - backgroundUrl: "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/303.jpg", - talents: [ - { - fieldName: "improvedHealthstone", - location: { - rowIdx: 0, - colIdx: 0 - }, - spellIds: [ - 18692, - 18693 - ], - maxPoints: 2 - }, - { - fieldName: "improvedImp", - location: { - rowIdx: 0, - colIdx: 1 - }, - spellIds: [ - 18694, - 18695, - 18696 - ], - maxPoints: 3 - }, - { - fieldName: "demonicEmbrace", - location: { - rowIdx: 0, - colIdx: 2 - }, - spellIds: [ - 18697, - 18698, - 18699 - ], - maxPoints: 3 - }, - { - fieldName: "felSynergy", - location: { - rowIdx: 0, - colIdx: 3 - }, - spellIds: [ - 47230, - 47231 - ], - maxPoints: 2 - }, - { - fieldName: "improvedHealthFunnel", - location: { - rowIdx: 1, - colIdx: 0 - }, - spellIds: [ - 18703, - 18704 - ], - maxPoints: 2 - }, - { - fieldName: "demonicBrutality", - location: { - rowIdx: 1, - colIdx: 1 - }, - spellIds: [ - 18705, - 18706, - 18707 - ], - maxPoints: 3 - }, - { - fieldName: "felVitality", - location: { - rowIdx: 1, - colIdx: 2 - }, - spellIds: [ - 18731, - 18743, - 18744 - ], - maxPoints: 3 - }, - { - fieldName: "improvedSayaad", - location: { - rowIdx: 2, - colIdx: 0 - }, - spellIds: [ - 18754, - 18755, - 18756 - ], - maxPoints: 3 - }, - { - fieldName: "soulLink", - location: { - rowIdx: 2, - colIdx: 1 - }, - spellIds: [ - 19028 - ], - maxPoints: 1 - }, - { - fieldName: "felDomination", - location: { - rowIdx: 2, - colIdx: 2 - }, - spellIds: [ - 18708 - ], - maxPoints: 1 - }, - { - fieldName: "demonicAegis", - location: { - rowIdx: 2, - colIdx: 3 - }, - spellIds: [ - 30143, - 30144, - 30145 - ], - maxPoints: 3 - }, - { - fieldName: "unholyPower", - location: { - rowIdx: 3, - colIdx: 1 - }, - spellIds: [ - 18769, - 18770, - 18771, - 18772, - 18773 - ], - maxPoints: 5, - "prereqLocation": { - rowIdx: 2, - colIdx: 1 - } - }, - { - fieldName: "masterSummoner", - location: { - rowIdx: 3, - colIdx: 2 - }, - spellIds: [ - 18709, - 18710 - ], - maxPoints: 2, - "prereqLocation": { - rowIdx: 2, - colIdx: 2 - } - }, - { - fieldName: "manaFeed", - location: { - rowIdx: 4, - colIdx: 0 - }, - spellIds: [ - 30326 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 3, - colIdx: 1 - } - }, - { - fieldName: "masterConjuror", - location: { - rowIdx: 4, - colIdx: 2 - }, - spellIds: [ - 18767, - 18768 - ], - maxPoints: 2 - }, - { - fieldName: "masterDemonologist", - location: { - rowIdx: 5, - colIdx: 1 - }, - spellIds: [ - 23785, - 23822, - 23823, - 23824, - 23825 - ], - maxPoints: 5, - "prereqLocation": { - rowIdx: 3, - colIdx: 1 - } - }, - { - fieldName: "moltenCore", - location: { - rowIdx: 5, - colIdx: 2 - }, - spellIds: [ - 47245, - 47246, - 47247 - ], - maxPoints: 3 - }, - { - fieldName: "demonicResilience", - location: { - rowIdx: 6, - colIdx: 0 - }, - spellIds: [ - 30319, - 30320, - 30321 - ], - maxPoints: 3 - }, - { - fieldName: "demonicEmpowerment", - location: { - rowIdx: 6, - colIdx: 1 - }, - spellIds: [ - 47193 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 5, - colIdx: 1 - } - }, - { - fieldName: "demonicKnowledge", - location: { - rowIdx: 6, - colIdx: 2 - }, - spellIds: [ - 35691, - 35692, - 35693 - ], - maxPoints: 3 - }, - { - fieldName: "demonicTactics", - location: { - rowIdx: 7, - colIdx: 1 - }, - spellIds: [ - 30242, - 30245, - 30246, - 30247, - 30248 - ], - maxPoints: 5 - }, - { - fieldName: "decimation", - location: { - rowIdx: 7, - colIdx: 2 - }, - spellIds: [ - 63156, - 63158 - ], - maxPoints: 2 - }, - { - fieldName: "improvedDemonicTactics", - location: { - rowIdx: 8, - colIdx: 0 - }, - spellIds: [ - 54347, - 54348, - 54349 - ], - maxPoints: 3, - "prereqLocation": { - rowIdx: 7, - colIdx: 1 - } - }, - { - fieldName: "summonFelguard", - location: { - rowIdx: 8, - colIdx: 1 - }, - spellIds: [ - 30146 - ], - maxPoints: 1 - }, - { - fieldName: "nemesis", - location: { - rowIdx: 8, - colIdx: 2 - }, - spellIds: [ - 63117, - 63121, - 63123 - ], - maxPoints: 3 - }, - { - fieldName: "demonicPact", - location: { - rowIdx: 9, - colIdx: 1 - }, - spellIds: [ - 47236, - 47237, - 47238, - 47239, - 47240 - ], - maxPoints: 5 - }, - { - fieldName: "metamorphosis", - location: { - rowIdx: 10, - colIdx: 1 - }, - spellIds: [ - 59672 - ], - maxPoints: 1 - } - ] - }, - { - name: "Destruction", - backgroundUrl: "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/301.jpg", - talents: [ - { - fieldName: "improvedShadowBolt", - location: { - rowIdx: 0, - colIdx: 1 - }, - spellIds: [ - 17793, - 17796, - 17801, - 17802, - 17803 - ], - maxPoints: 5 - }, - { - fieldName: "bane", - location: { - rowIdx: 0, - colIdx: 2 - }, - spellIds: [ - 17788, - 17789, - 17790, - 17791, - 17792 - ], - maxPoints: 5 - }, - { - fieldName: "aftermath", - location: { - rowIdx: 1, - colIdx: 0 - }, - spellIds: [ - 18119, - 18120 - ], - maxPoints: 2 - }, - { - fieldName: "moltenSkin", - location: { - rowIdx: 1, - colIdx: 1 - }, - spellIds: [ - 63349, - 63350, - 63351 - ], - maxPoints: 3 - }, - { - fieldName: "cataclysm", - location: { - rowIdx: 1, - colIdx: 2 - }, - spellIds: [ - 17778, - 17779, - 17780 - ], - maxPoints: 3 - }, - { - fieldName: "demonicPower", - location: { - rowIdx: 2, - colIdx: 0 - }, - spellIds: [ - 18126, - 18127 - ], - maxPoints: 2 - }, - { - fieldName: "shadowburn", - location: { - rowIdx: 2, - colIdx: 1 - }, - spellIds: [ - 17877 - ], - maxPoints: 1 - }, - { - fieldName: "ruin", - location: { - rowIdx: 2, - colIdx: 2 - }, - spellIds: [ - 17959, - 59738, - 59739, - 59740, - 59741 - ], - maxPoints: 5 - }, - { - fieldName: "intensity", - location: { - rowIdx: 3, - colIdx: 0 - }, - spellIds: [ - 18135, - 18136 - ], - maxPoints: 2 - }, - { - fieldName: "destructiveReach", - location: { - rowIdx: 3, - colIdx: 1 - }, - spellIds: [ - 17917, - 17918 - ], - maxPoints: 2 - }, - { - fieldName: "improvedSearingPain", - location: { - rowIdx: 3, - colIdx: 3 - }, - spellIds: [ - 17927, - 17929, - 17930 - ], - maxPoints: 3 - }, - { - fieldName: "backlash", - location: { - rowIdx: 4, - colIdx: 0 - }, - spellIds: [ - 34935, - 34938, - 34939 - ], - maxPoints: 3, - "prereqLocation": { - rowIdx: 3, - colIdx: 0 - } - }, - { - fieldName: "improvedImmolate", - location: { - rowIdx: 4, - colIdx: 1 - }, - spellIds: [ - 17815, - 17833, - 17834 - ], - maxPoints: 3 - }, - { - fieldName: "devastation", - location: { - rowIdx: 4, - colIdx: 2 - }, - spellIds: [ - 18130 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 2, - colIdx: 2 - } - }, - { - fieldName: "netherProtection", - location: { - rowIdx: 5, - colIdx: 0 - }, - spellIds: [ - 30299, - 30301, - 30302 - ], - maxPoints: 3 - }, - { - fieldName: "emberstorm", - location: { - rowIdx: 5, - colIdx: 2 - }, - spellIds: [ - 17954, - 17955, - 17956, - 17957, - 17958 - ], - maxPoints: 5 - }, - { - fieldName: "conflagrate", - location: { - rowIdx: 6, - colIdx: 1 - }, - spellIds: [ - 17962 - ], - maxPoints: 1, - "prereqLocation": { - rowIdx: 4, - colIdx: 1 - } - }, - { - fieldName: "soulLeech", - location: { - rowIdx: 6, - colIdx: 2 - }, - spellIds: [ - 30293, - 30295, - 30296 - ], - maxPoints: 3 - }, - { - fieldName: "pyroclasm", - location: { - rowIdx: 6, - colIdx: 3 - }, - spellIds: [ - 18096, - 18073, - 63245 - ], - maxPoints: 3 - }, - { - fieldName: "shadowAndFlame", - location: { - rowIdx: 7, - colIdx: 1 - }, - spellIds: [ - 30288, - 30289, - 30290, - 30291, - 30292 - ], - maxPoints: 5 - }, - { - fieldName: "improvedSoulLeech", - location: { - rowIdx: 7, - colIdx: 2 - }, - spellIds: [ - 54117, - 54118 - ], - maxPoints: 2, - "prereqLocation": { - rowIdx: 6, - colIdx: 2 - } - }, - { - fieldName: "backdraft", - location: { - rowIdx: 8, - colIdx: 0 - }, - spellIds: [ - 47258, - 47259, - 47260 - ], - maxPoints: 3, - "prereqLocation": { - rowIdx: 6, - colIdx: 1 - } - }, - { - fieldName: "shadowfury", - location: { - rowIdx: 8, - colIdx: 1 - }, - spellIds: [ - 30283 - ], - maxPoints: 1 - }, - { - fieldName: "empoweredImp", - location: { - rowIdx: 8, - colIdx: 2 - }, - spellIds: [ - 47220, - 47221, - 47223 - ], - maxPoints: 3 - }, - { - fieldName: "fireAndBrimstone", - location: { - rowIdx: 9, - colIdx: 1 - }, - spellIds: [ - 47266, - 47267, - 47268, - 47269, - 47270 - ], - maxPoints: 5 - }, - { - fieldName: "chaosBolt", - location: { - rowIdx: 10, - colIdx: 1 - }, - spellIds: [ - 50796 - ], - maxPoints: 1 - } - ] - } -]); +import WarlockTalentJson from './trees/warlock.json'; + +export const warlockTalentsConfig: TalentsConfig = newTalentsConfig(WarlockTalentJson); export const warlockGlyphsConfig: GlyphsConfig = { majorGlyphs: { diff --git a/ui/core/talents/warrior.ts b/ui/core/talents/warrior.ts index 6a5135269b..7b3b927e51 100644 --- a/ui/core/talents/warrior.ts +++ b/ui/core/talents/warrior.ts @@ -3,1136 +3,9 @@ import { WarriorTalents, WarriorMajorGlyph, WarriorMinorGlyph } from '../proto/w import { GlyphsConfig } from './glyphs_picker.js'; import { TalentsConfig, newTalentsConfig } from './talents_picker.js'; -export const warriorTalentsConfig: TalentsConfig = newTalentsConfig([ - { - "name": "Arms", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/161.jpg", - "talents": [ - { - "fieldName": "improvedHeroicStrike", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 12282, - 12663, - 12664 - ], - "maxPoints": 3 - }, - { - "fieldName": "deflection", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 16462, - 16463, - 16464, - 16465, - 16466 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedRend", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 12286, - 12658 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedCharge", - "location": { - "rowIdx": 1, - "colIdx": 0 - }, - "spellIds": [ - 12285, - 12697 - ], - "maxPoints": 2 - }, - { - "fieldName": "ironWill", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 12300, - 12959, - 12960 - ], - "maxPoints": 3 - }, - { - "fieldName": "tacticalMastery", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 12295, - 12676, - 12677 - ], - "maxPoints": 3 - }, - { - "fieldName": "improvedOverpower", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 12290, - 12963 - ], - "maxPoints": 2 - }, - { - "fieldName": "angerManagement", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 12296 - ], - "maxPoints": 1 - }, - { - "fieldName": "impale", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 16493, - 16494 - ], - "maxPoints": 2 - }, - { - "fieldName": "deepWounds", - "location": { - "rowIdx": 2, - "colIdx": 3 - }, - "spellIds": [ - 12834, - 12849, - 12867 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 2, - "colIdx": 2 - } - }, - { - "fieldName": "twoHandedWeaponSpecialization", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 12163, - 12711, - 12712 - ], - "maxPoints": 3 - }, - { - "fieldName": "tasteForBlood", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 56636, - 56637, - 56638 - ], - "maxPoints": 3 - }, - { - "fieldName": "poleaxeSpecialization", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 12700, - 12781, - 12783, - 12784, - 12785 - ], - "maxPoints": 5 - }, - { - "fieldName": "sweepingStrikes", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 12328 - ], - "maxPoints": 1 - }, - { - "fieldName": "maceSpecialization", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 12284, - 12701, - 12702, - 12703, - 12704 - ], - "maxPoints": 5 - }, - { - "fieldName": "swordSpecialization", - "location": { - "rowIdx": 4, - "colIdx": 3 - }, - "spellIds": [ - 12281, - 12812, - 12813, - 12814, - 12815 - ], - "maxPoints": 5 - }, - { - "fieldName": "weaponMastery", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 20504, - 20505 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedHamstring", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 12289, - 12668, - 23695 - ], - "maxPoints": 3 - }, - { - "fieldName": "trauma", - "location": { - "rowIdx": 5, - "colIdx": 3 - }, - "spellIds": [ - 46854, - 46855 - ], - "maxPoints": 2 - }, - { - "fieldName": "secondWind", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 29834, - 29838 - ], - "maxPoints": 2 - }, - { - "fieldName": "mortalStrike", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 12294 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "strengthOfArms", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 46865, - 46866 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedSlam", - "location": { - "rowIdx": 6, - "colIdx": 3 - }, - "spellIds": [ - 12862, - 12330 - ], - "maxPoints": 2 - }, - { - "fieldName": "juggernaut", - "location": { - "rowIdx": 7, - "colIdx": 0 - }, - "spellIds": [ - 64976 - ], - "maxPoints": 1 - }, - { - "fieldName": "improvedMortalStrike", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 35446, - 35448, - 35449 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "unrelentingAssault", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 46859, - 46860 - ], - "maxPoints": 2 - }, - { - "fieldName": "suddenDeath", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 29723, - 29724, - 29725 - ], - "maxPoints": 3 - }, - { - "fieldName": "endlessRage", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 29623 - ], - "maxPoints": 1 - }, - { - "fieldName": "bloodFrenzy", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 29836, - 29859 - ], - "maxPoints": 2 - }, - { - "fieldName": "wreckingCrew", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 46867, - 56611, - 56612, - 56613, - 56614 - ], - "maxPoints": 5 - }, - { - "fieldName": "bladestorm", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 46924 - ], - "maxPoints": 1 - } - ] - }, - { - "name": "Fury", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/164.jpg", - "talents": [ - { - "fieldName": "armoredToTheTeeth", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 61216, - 61221, - 61222 - ], - "maxPoints": 3 - }, - { - "fieldName": "boomingVoice", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 12321, - 12835 - ], - "maxPoints": 2 - }, - { - "fieldName": "cruelty", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 12320, - 12852, - 12853, - 12855, - 12856 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedDemoralizingShout", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 12324, - 12876, - 12877, - 12878, - 12879 - ], - "maxPoints": 5 - }, - { - "fieldName": "unbridledWrath", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 12322, - 12999, - 13000, - 13001, - 13002 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedCleave", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 12329, - 12950, - 20496 - ], - "maxPoints": 3 - }, - { - "fieldName": "piercingHowl", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 12323 - ], - "maxPoints": 1 - }, - { - "fieldName": "bloodCraze", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 16487, - 16489, - 16492 - ], - "maxPoints": 3 - }, - { - "fieldName": "commandingPresence", - "location": { - "rowIdx": 2, - "colIdx": 3 - }, - "spellIds": [ - 12318, - 12857, - 12858, - 12860, - 12861 - ], - "maxPoints": 5 - }, - { - "fieldName": "dualWieldSpecialization", - "location": { - "rowIdx": 3, - "colIdx": 0 - }, - "spellIds": [ - 23584, - 23585, - 23586, - 23587, - 23588 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedExecute", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 20502, - 20503 - ], - "maxPoints": 2 - }, - { - "fieldName": "enrage", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 12317, - 13045, - 13046, - 13047, - 13048 - ], - "maxPoints": 5 - }, - { - "fieldName": "precision", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 29590, - 29591, - 29592 - ], - "maxPoints": 3 - }, - { - "fieldName": "deathWish", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 12292 - ], - "maxPoints": 1 - }, - { - "fieldName": "improvedIntercept", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 29888, - 29889 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedBerserkerRage", - "location": { - "rowIdx": 5, - "colIdx": 0 - }, - "spellIds": [ - 20500, - 20501 - ], - "maxPoints": 2 - }, - { - "fieldName": "flurry", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 12319, - 12971, - 12972, - 12973, - 12974 - ], - "maxPoints": 5 - }, - { - "fieldName": "intensifyRage", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 46908, - 46909, - 56924 - ], - "maxPoints": 3 - }, - { - "fieldName": "bloodthirst", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 23881 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "improvedWhirlwind", - "location": { - "rowIdx": 6, - "colIdx": 3 - }, - "spellIds": [ - 29721, - 29776 - ], - "maxPoints": 2 - }, - { - "fieldName": "furiousAttacks", - "location": { - "rowIdx": 7, - "colIdx": 0 - }, - "spellIds": [ - 46910, - 46911 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedBerserkerStance", - "location": { - "rowIdx": 7, - "colIdx": 3 - }, - "spellIds": [ - 29759, - 29760, - 29761, - 29762, - 29763 - ], - "maxPoints": 5 - }, - { - "fieldName": "heroicFury", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 60970 - ], - "maxPoints": 1 - }, - { - "fieldName": "rampage", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 29801 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "bloodsurge", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 46913, - 46914, - 46915 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 6, - "colIdx": 1 - } - }, - { - "fieldName": "unendingFury", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 56927, - 56929, - 56930, - 56931, - 56932 - ], - "maxPoints": 5 - }, - { - "fieldName": "titansGrip", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 46917 - ], - "maxPoints": 1 - } - ] - }, - { - "name": "Protection", - "backgroundUrl": "https://wow.zamimg.com/images/wow/talents/backgrounds/wrath/163.jpg", - "talents": [ - { - "fieldName": "improvedBloodrage", - "location": { - "rowIdx": 0, - "colIdx": 0 - }, - "spellIds": [ - 12301, - 12818 - ], - "maxPoints": 2 - }, - { - "fieldName": "shieldSpecialization", - "location": { - "rowIdx": 0, - "colIdx": 1 - }, - "spellIds": [ - 12298, - 12724, - 12725, - 12726, - 12727 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedThunderClap", - "location": { - "rowIdx": 0, - "colIdx": 2 - }, - "spellIds": [ - 12287, - 12665, - 12666 - ], - "maxPoints": 3 - }, - { - "fieldName": "incite", - "location": { - "rowIdx": 1, - "colIdx": 1 - }, - "spellIds": [ - 50685, - 50686, - 50687 - ], - "maxPoints": 3 - }, - { - "fieldName": "anticipation", - "location": { - "rowIdx": 1, - "colIdx": 2 - }, - "spellIds": [ - 55129, - 12750, - 12751, - 12752, - 12753, - ], - "maxPoints": 5 - }, - { - "fieldName": "lastStand", - "location": { - "rowIdx": 2, - "colIdx": 0 - }, - "spellIds": [ - 12975 - ], - "maxPoints": 1 - }, - { - "fieldName": "improvedRevenge", - "location": { - "rowIdx": 2, - "colIdx": 1 - }, - "spellIds": [ - 12797, - 12799 - ], - "maxPoints": 2 - }, - { - "fieldName": "shieldMastery", - "location": { - "rowIdx": 2, - "colIdx": 2 - }, - "spellIds": [ - 29598, - 29599 - ], - "maxPoints": 2 - }, - { - "fieldName": "toughness", - "location": { - "rowIdx": 2, - "colIdx": 3 - }, - "spellIds": [ - 12299, - 12761, - 12762, - 12763, - 12764 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedSpellReflection", - "location": { - "rowIdx": 3, - "colIdx": 0 - }, - "spellIds": [ - 59088, - 59089 - ], - "maxPoints": 2 - }, - { - "fieldName": "improvedDisarm", - "location": { - "rowIdx": 3, - "colIdx": 1 - }, - "spellIds": [ - 12313, - 12804 - ], - "maxPoints": 2 - }, - { - "fieldName": "puncture", - "location": { - "rowIdx": 3, - "colIdx": 2 - }, - "spellIds": [ - 12308, - 12810, - 12811 - ], - "maxPoints": 3 - }, - { - "fieldName": "improvedDisciplines", - "location": { - "rowIdx": 4, - "colIdx": 0 - }, - "spellIds": [ - 12312, - 12803 - ], - "maxPoints": 2 - }, - { - "fieldName": "concussionBlow", - "location": { - "rowIdx": 4, - "colIdx": 1 - }, - "spellIds": [ - 12809 - ], - "maxPoints": 1 - }, - { - "fieldName": "gagOrder", - "location": { - "rowIdx": 4, - "colIdx": 2 - }, - "spellIds": [ - 12311, - 12958 - ], - "maxPoints": 2 - }, - { - "fieldName": "oneHandedWeaponSpecialization", - "location": { - "rowIdx": 5, - "colIdx": 2 - }, - "spellIds": [ - 16538, - 16539, - 16540, - 16541, - 16542 - ], - "maxPoints": 5 - }, - { - "fieldName": "improvedDefensiveStance", - "location": { - "rowIdx": 6, - "colIdx": 0 - }, - "spellIds": [ - 29593, - 29594 - ], - "maxPoints": 2 - }, - { - "fieldName": "vigilance", - "location": { - "rowIdx": 6, - "colIdx": 1 - }, - "spellIds": [ - 50720 - ], - "maxPoints": 1, - "prereqLocation": { - "rowIdx": 4, - "colIdx": 1 - } - }, - { - "fieldName": "focusedRage", - "location": { - "rowIdx": 6, - "colIdx": 2 - }, - "spellIds": [ - 29787, - 29790, - 29792 - ], - "maxPoints": 3 - }, - { - "fieldName": "vitality", - "location": { - "rowIdx": 7, - "colIdx": 1 - }, - "spellIds": [ - 29140, - 29143, - 29144 - ], - "maxPoints": 3 - }, - { - "fieldName": "safeguard", - "location": { - "rowIdx": 7, - "colIdx": 2 - }, - "spellIds": [ - 46945, - 46949 - ], - "maxPoints": 2 - }, - { - "fieldName": "warbringer", - "location": { - "rowIdx": 8, - "colIdx": 0 - }, - "spellIds": [ - 57499 - ], - "maxPoints": 1 - }, - { - "fieldName": "devastate", - "location": { - "rowIdx": 8, - "colIdx": 1 - }, - "spellIds": [ - 20243 - ], - "maxPoints": 1 - }, - { - "fieldName": "criticalBlock", - "location": { - "rowIdx": 8, - "colIdx": 2 - }, - "spellIds": [ - 47294, - 47295, - 47296 - ], - "maxPoints": 3 - }, - { - "fieldName": "swordAndBoard", - "location": { - "rowIdx": 9, - "colIdx": 1 - }, - "spellIds": [ - 46951, - 46952, - 46953 - ], - "maxPoints": 3, - "prereqLocation": { - "rowIdx": 8, - "colIdx": 1 - } - }, - { - "fieldName": "damageShield", - "location": { - "rowIdx": 9, - "colIdx": 2 - }, - "spellIds": [ - 58872, - 58874 - ], - "maxPoints": 2 - }, - { - "fieldName": "shockwave", - "location": { - "rowIdx": 10, - "colIdx": 1 - }, - "spellIds": [ - 46968 - ], - "maxPoints": 1 - } - ] - } -]); +import WarriorTalentJson from './trees/warrior.json'; + +export const warriorTalentsConfig: TalentsConfig = newTalentsConfig(WarriorTalentJson); export const warriorGlyphsConfig: GlyphsConfig = { majorGlyphs: {