-- DynamicTooltips: Mage Spell Data (Classic/TBC)
-- TBC Spell Coefficients for Mage class
-- Training levels sourced from TBC Classic Wowhead

local _, DT = ...
DT.ClassData = DT.ClassData or {}

-- Skip Classic data on Retail
if DT.isRetail then return end

DT.ClassData.Mage = {
    -- ========================================================================
    -- FIREBALL - All Ranks (sp=1.0, Fire, Direct + DoT)
    -- ========================================================================
    [133] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 1, rank = 1, maxRank = 13 },
    [143] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 6, rank = 2, maxRank = 13 },
    [145] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 12, rank = 3, maxRank = 13 },
    [3140] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 18, rank = 4, maxRank = 13 },
    [8400] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 24, rank = 5, maxRank = 13 },
    [8401] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 30, rank = 6, maxRank = 13 },
    [8402] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 36, rank = 7, maxRank = 13 },
    [10148] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 42, rank = 8, maxRank = 13 },
    [10149] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 48, rank = 9, maxRank = 13 },
    [10150] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 54, rank = 10, maxRank = 13 },
    [10151] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 60, rank = 11, maxRank = 13 },
    [25306] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 60, rank = 12, maxRank = 13 },
    [27070] = { name = "Fireball", sp = 1.0, school = "Fire", type = "Direct", dotSp = 0, level = 66, rank = 13, maxRank = 13 },

    -- ========================================================================
    -- FIRE BLAST - All Ranks (sp=0.429, Fire, Direct)
    -- ========================================================================
    [2136] = { name = "Fire Blast", sp = 0.429, school = "Fire", type = "Direct", level = 6, rank = 1, maxRank = 9 },
    [2137] = { name = "Fire Blast", sp = 0.429, school = "Fire", type = "Direct", level = 14, rank = 2, maxRank = 9 },
    [2138] = { name = "Fire Blast", sp = 0.429, school = "Fire", type = "Direct", level = 22, rank = 3, maxRank = 9 },
    [8412] = { name = "Fire Blast", sp = 0.429, school = "Fire", type = "Direct", level = 30, rank = 4, maxRank = 9 },
    [8413] = { name = "Fire Blast", sp = 0.429, school = "Fire", type = "Direct", level = 38, rank = 5, maxRank = 9 },
    [10197] = { name = "Fire Blast", sp = 0.429, school = "Fire", type = "Direct", level = 46, rank = 6, maxRank = 9 },
    [10199] = { name = "Fire Blast", sp = 0.429, school = "Fire", type = "Direct", level = 54, rank = 7, maxRank = 9 },
    [27078] = { name = "Fire Blast", sp = 0.429, school = "Fire", type = "Direct", level = 61, rank = 8, maxRank = 9 },
    [27079] = { name = "Fire Blast", sp = 0.429, school = "Fire", type = "Direct", level = 70, rank = 9, maxRank = 9 },

    -- ========================================================================
    -- SCORCH - All Ranks (sp=0.429, Fire, Direct)
    -- ========================================================================
    [2948] = { name = "Scorch", sp = 0.429, school = "Fire", type = "Direct", level = 22, rank = 1, maxRank = 9 },
    [8444] = { name = "Scorch", sp = 0.429, school = "Fire", type = "Direct", level = 28, rank = 2, maxRank = 9 },
    [8445] = { name = "Scorch", sp = 0.429, school = "Fire", type = "Direct", level = 34, rank = 3, maxRank = 9 },
    [8446] = { name = "Scorch", sp = 0.429, school = "Fire", type = "Direct", level = 40, rank = 4, maxRank = 9 },
    [10205] = { name = "Scorch", sp = 0.429, school = "Fire", type = "Direct", level = 46, rank = 5, maxRank = 9 },
    [10206] = { name = "Scorch", sp = 0.429, school = "Fire", type = "Direct", level = 52, rank = 6, maxRank = 9 },
    [10207] = { name = "Scorch", sp = 0.429, school = "Fire", type = "Direct", level = 58, rank = 7, maxRank = 9 },
    [27073] = { name = "Scorch", sp = 0.429, school = "Fire", type = "Direct", level = 65, rank = 8, maxRank = 9 },
    [27074] = { name = "Scorch", sp = 0.429, school = "Fire", type = "Direct", level = 70, rank = 9, maxRank = 9 },

    -- ========================================================================
    -- PYROBLAST - All Ranks (sp=1.15, Fire, Direct + DoT, Talent)
    -- ========================================================================
    [11366] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 20, rank = 1, maxRank = 10 },
    [12505] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 24, rank = 2, maxRank = 10 },
    [12522] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 30, rank = 3, maxRank = 10 },
    [12523] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 36, rank = 4, maxRank = 10 },
    [12524] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 42, rank = 5, maxRank = 10 },
    [12525] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 48, rank = 6, maxRank = 10 },
    [12526] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 54, rank = 7, maxRank = 10 },
    [18809] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 60, rank = 8, maxRank = 10 },
    [27132] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 66, rank = 9, maxRank = 10 },
    [33938] = { name = "Pyroblast", sp = 1.15, school = "Fire", type = "Direct", dotSp = 0.05, duration = 12, level = 70, rank = 10, maxRank = 10 },

    -- ========================================================================
    -- BLAST WAVE - All Ranks (sp=0.143, Fire, Direct, AoE, Talent)
    -- ========================================================================
    [11113] = { name = "Blast Wave", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, maxTargets = 10, level = 30, rank = 1, maxRank = 7 },
    [13018] = { name = "Blast Wave", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, maxTargets = 10, level = 36, rank = 2, maxRank = 7 },
    [13019] = { name = "Blast Wave", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, maxTargets = 10, level = 44, rank = 3, maxRank = 7 },
    [13020] = { name = "Blast Wave", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, maxTargets = 10, level = 52, rank = 4, maxRank = 7 },
    [13021] = { name = "Blast Wave", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, maxTargets = 10, level = 60, rank = 5, maxRank = 7 },
    [27133] = { name = "Blast Wave", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, maxTargets = 10, level = 65, rank = 6, maxRank = 7 },
    [33933] = { name = "Blast Wave", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, maxTargets = 10, level = 70, rank = 7, maxRank = 7 },

    -- ========================================================================
    -- FLAMESTRIKE - All Ranks (sp=0.243, Fire, Direct + DoT, AoE)
    -- ========================================================================
    [2120] = { name = "Flamestrike", sp = 0.243, school = "Fire", type = "Direct", dotSp = 0.05, duration = 8, isAoE = true, level = 16, rank = 1, maxRank = 7 },
    [2121] = { name = "Flamestrike", sp = 0.243, school = "Fire", type = "Direct", dotSp = 0.05, duration = 8, isAoE = true, level = 24, rank = 2, maxRank = 7 },
    [8422] = { name = "Flamestrike", sp = 0.243, school = "Fire", type = "Direct", dotSp = 0.05, duration = 8, isAoE = true, level = 32, rank = 3, maxRank = 7 },
    [8423] = { name = "Flamestrike", sp = 0.243, school = "Fire", type = "Direct", dotSp = 0.05, duration = 8, isAoE = true, level = 40, rank = 4, maxRank = 7 },
    [10215] = { name = "Flamestrike", sp = 0.243, school = "Fire", type = "Direct", dotSp = 0.05, duration = 8, isAoE = true, level = 48, rank = 5, maxRank = 7 },
    [10216] = { name = "Flamestrike", sp = 0.243, school = "Fire", type = "Direct", dotSp = 0.05, duration = 8, isAoE = true, level = 56, rank = 6, maxRank = 7 },
    [27086] = { name = "Flamestrike", sp = 0.243, school = "Fire", type = "Direct", dotSp = 0.05, duration = 8, isAoE = true, level = 64, rank = 7, maxRank = 7 },

    -- ========================================================================
    -- DRAGON'S BREATH - All Ranks (sp=0.143, Fire, Direct, AoE, Talent)
    -- ========================================================================
    [31661] = { name = "Dragon's Breath", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, level = 50, rank = 1, maxRank = 4 },
    [33041] = { name = "Dragon's Breath", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, level = 56, rank = 2, maxRank = 4 },
    [33042] = { name = "Dragon's Breath", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, level = 64, rank = 3, maxRank = 4 },
    [33043] = { name = "Dragon's Breath", sp = 0.143, school = "Fire", type = "Direct", isAoE = true, level = 70, rank = 4, maxRank = 4 },

    -- ========================================================================
    -- FROSTBOLT - All Ranks (sp=0.814, Frost, Direct)
    -- ========================================================================
    [116] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 4, rank = 1, maxRank = 13 },
    [205] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 8, rank = 2, maxRank = 13 },
    [837] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 14, rank = 3, maxRank = 13 },
    [7322] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 20, rank = 4, maxRank = 13 },
    [8406] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 26, rank = 5, maxRank = 13 },
    [8407] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 32, rank = 6, maxRank = 13 },
    [8408] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 38, rank = 7, maxRank = 13 },
    [10179] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 44, rank = 8, maxRank = 13 },
    [10180] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 50, rank = 9, maxRank = 13 },
    [10181] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 56, rank = 10, maxRank = 13 },
    [25304] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 60, rank = 11, maxRank = 13 },
    [27071] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 63, rank = 12, maxRank = 13 },
    [27072] = { name = "Frostbolt", sp = 0.814, school = "Frost", type = "Direct", level = 69, rank = 13, maxRank = 13 },

    -- ========================================================================
    -- CONE OF COLD - All Ranks (sp=0.135, Frost, Direct, AoE)
    -- ========================================================================
    [120] = { name = "Cone of Cold", sp = 0.135, school = "Frost", type = "Direct", isAoE = true, maxTargets = 10, level = 26, rank = 1, maxRank = 6 },
    [8492] = { name = "Cone of Cold", sp = 0.135, school = "Frost", type = "Direct", isAoE = true, maxTargets = 10, level = 34, rank = 2, maxRank = 6 },
    [10159] = { name = "Cone of Cold", sp = 0.135, school = "Frost", type = "Direct", isAoE = true, maxTargets = 10, level = 42, rank = 3, maxRank = 6 },
    [10160] = { name = "Cone of Cold", sp = 0.135, school = "Frost", type = "Direct", isAoE = true, maxTargets = 10, level = 50, rank = 4, maxRank = 6 },
    [10161] = { name = "Cone of Cold", sp = 0.135, school = "Frost", type = "Direct", isAoE = true, maxTargets = 10, level = 58, rank = 5, maxRank = 6 },
    [27087] = { name = "Cone of Cold", sp = 0.135, school = "Frost", type = "Direct", isAoE = true, maxTargets = 10, level = 65, rank = 6, maxRank = 6 },

    -- ========================================================================
    -- FROST NOVA - All Ranks (sp=0.05, Frost, Direct, AoE)
    -- ========================================================================
    [122] = { name = "Frost Nova", sp = 0.05, school = "Frost", type = "Direct", isAoE = true, level = 10, rank = 1, maxRank = 5 },
    [865] = { name = "Frost Nova", sp = 0.05, school = "Frost", type = "Direct", isAoE = true, level = 26, rank = 2, maxRank = 5 },
    [6131] = { name = "Frost Nova", sp = 0.05, school = "Frost", type = "Direct", isAoE = true, level = 40, rank = 3, maxRank = 5 },
    [10230] = { name = "Frost Nova", sp = 0.05, school = "Frost", type = "Direct", isAoE = true, level = 54, rank = 4, maxRank = 5 },
    [27088] = { name = "Frost Nova", sp = 0.05, school = "Frost", type = "Direct", isAoE = true, level = 67, rank = 5, maxRank = 5 },

    -- ========================================================================
    -- BLIZZARD - All Ranks (sp=0.143, Frost, Channel, AoE)
    -- ========================================================================
    [10] = { name = "Blizzard", sp = 0.143, school = "Frost", type = "Channel", duration = 8, isAoE = true, level = 20, rank = 1, maxRank = 7 },
    [6141] = { name = "Blizzard", sp = 0.143, school = "Frost", type = "Channel", duration = 8, isAoE = true, level = 28, rank = 2, maxRank = 7 },
    [8427] = { name = "Blizzard", sp = 0.143, school = "Frost", type = "Channel", duration = 8, isAoE = true, level = 36, rank = 3, maxRank = 7 },
    [10185] = { name = "Blizzard", sp = 0.143, school = "Frost", type = "Channel", duration = 8, isAoE = true, level = 44, rank = 4, maxRank = 7 },
    [10186] = { name = "Blizzard", sp = 0.143, school = "Frost", type = "Channel", duration = 8, isAoE = true, level = 52, rank = 5, maxRank = 7 },
    [10187] = { name = "Blizzard", sp = 0.143, school = "Frost", type = "Channel", duration = 8, isAoE = true, level = 60, rank = 6, maxRank = 7 },
    [27085] = { name = "Blizzard", sp = 0.143, school = "Frost", type = "Channel", duration = 8, isAoE = true, level = 68, rank = 7, maxRank = 7 },

    -- ========================================================================
    -- ICE LANCE (sp=0.143, Frost, Direct, TBC-only)
    -- ========================================================================
    [30455] = { name = "Ice Lance", sp = 0.143, school = "Frost", type = "Direct", level = 66, rank = 1, maxRank = 1 },

    -- ========================================================================
    -- ICE BARRIER - All Ranks (sp=0.1, Frost, Shield, Talent)
    -- ========================================================================
    [11426] = { name = "Ice Barrier", sp = 0.1, school = "Frost", type = "Shield", level = 40, rank = 1, maxRank = 6 },
    [13031] = { name = "Ice Barrier", sp = 0.1, school = "Frost", type = "Shield", level = 46, rank = 2, maxRank = 6 },
    [13032] = { name = "Ice Barrier", sp = 0.1, school = "Frost", type = "Shield", level = 52, rank = 3, maxRank = 6 },
    [13033] = { name = "Ice Barrier", sp = 0.1, school = "Frost", type = "Shield", level = 58, rank = 4, maxRank = 6 },
    [27134] = { name = "Ice Barrier", sp = 0.1, school = "Frost", type = "Shield", level = 64, rank = 5, maxRank = 6 },
    [33405] = { name = "Ice Barrier", sp = 0.1, school = "Frost", type = "Shield", level = 70, rank = 6, maxRank = 6 },

    -- ========================================================================
    -- ARCANE MISSILES - All Ranks (sp=0.286/tick, Arcane, Channel)
    -- ========================================================================
    [5143] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 8, rank = 1, maxRank = 11 },
    [5144] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 16, rank = 2, maxRank = 11 },
    [5145] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 24, rank = 3, maxRank = 11 },
    [8416] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 32, rank = 4, maxRank = 11 },
    [8417] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 40, rank = 5, maxRank = 11 },
    [10211] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 48, rank = 6, maxRank = 11 },
    [10212] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 56, rank = 7, maxRank = 11 },
    [25345] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 60, rank = 8, maxRank = 11 },
    [27075] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 63, rank = 9, maxRank = 11 },
    [38699] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 69, rank = 10, maxRank = 11 },
    [38704] = { name = "Arcane Missiles", sp = 0.286, school = "Arcane", type = "Channel", duration = 5, ticks = 5, level = 70, rank = 11, maxRank = 11 },

    -- ========================================================================
    -- ARCANE BLAST (sp=0.714, Arcane, Direct, TBC-only)
    -- ========================================================================
    [30451] = { name = "Arcane Blast", sp = 0.714, school = "Arcane", type = "Direct", level = 64, rank = 1, maxRank = 1 },

    -- ========================================================================
    -- ARCANE EXPLOSION - All Ranks (sp=0.143, Arcane, Direct, AoE)
    -- ========================================================================
    [1449] = { name = "Arcane Explosion", sp = 0.143, school = "Arcane", type = "Direct", isAoE = true, level = 14, rank = 1, maxRank = 8 },
    [8437] = { name = "Arcane Explosion", sp = 0.143, school = "Arcane", type = "Direct", isAoE = true, level = 22, rank = 2, maxRank = 8 },
    [8438] = { name = "Arcane Explosion", sp = 0.143, school = "Arcane", type = "Direct", isAoE = true, level = 30, rank = 3, maxRank = 8 },
    [8439] = { name = "Arcane Explosion", sp = 0.143, school = "Arcane", type = "Direct", isAoE = true, level = 38, rank = 4, maxRank = 8 },
    [10201] = { name = "Arcane Explosion", sp = 0.143, school = "Arcane", type = "Direct", isAoE = true, level = 46, rank = 5, maxRank = 8 },
    [10202] = { name = "Arcane Explosion", sp = 0.143, school = "Arcane", type = "Direct", isAoE = true, level = 54, rank = 6, maxRank = 8 },
    [27080] = { name = "Arcane Explosion", sp = 0.143, school = "Arcane", type = "Direct", isAoE = true, level = 62, rank = 7, maxRank = 8 },
    [27082] = { name = "Arcane Explosion", sp = 0.143, school = "Arcane", type = "Direct", isAoE = true, level = 70, rank = 8, maxRank = 8 },

    -- ========================================================================
    -- BUFFS & UTILITY (No coefficient)
    -- ========================================================================
    [11129] = { name = "Combustion", sp = 0, type = "Buff" },
    [45438] = { name = "Ice Block", sp = 0, type = "Buff" },
    [12472] = { name = "Icy Veins", sp = 0, type = "Buff" },
    [12042] = { name = "Arcane Power", sp = 0, type = "Buff" },
    [118] = { name = "Polymorph", sp = 0, type = "CC" },
    [12051] = { name = "Evocation", sp = 0, type = "Ability" },
    [1459] = { name = "Arcane Intellect", sp = 0, type = "Buff" },
    [130] = { name = "Slow Fall", sp = 0, type = "Buff" },
    [475] = { name = "Remove Curse", sp = 0, type = "Ability" },
    [543] = { name = "Fire Ward", sp = 0, type = "Shield" },
    [6143] = { name = "Frost Ward", sp = 0, type = "Shield" },
    [1463] = { name = "Mana Shield", sp = 0, type = "Shield" },
    [30449] = { name = "Spellsteal", sp = 0, type = "Ability" },
    [2139] = { name = "Counterspell", sp = 0, type = "Interrupt" },
}
