-- Talent check file for the shaman class local class = "SHAMAN"; -- set up check table Scrub.TalentChecks = Scrub.TalentChecks or { }; Scrub.TalentChecks[class] = Scrub.TalentChecks[class] or { }; -- simple function to create new checks local function check(name, severity, check) tinsert(Scrub.TalentChecks[class], {name=name, severity=severity, check=check}); end -- local GREEN = Scrub.GREEN; local YELLOW = Scrub.YELLOW; local RED = Scrub.RED; -- Always Bad for PvE check("Hybrid spec. (No Totem of Wrath, Earth Shield, or Stormstrike)", RED, function (talents) return ((talents:rank(1, 20) + talents:rank(2, 19) + talents:rank(3, 20)) < 1); end); --- Elemental check("Useless Talent: Maxed Call of Flame (Drop ToW or spend points in a better tree)", RED, function (talents) return (talents:rank(1, 5) > 2); end); check("Useless Talent: Improved Fire Nova Totem (Drop ToW or spend points in a better tree)", RED, function (talents) return (talents:rank(1, 9) > 0); end); check("Useless Talent: Eye of the Storm (You're not a tank)", RED, function (talents) return (talents:rank(1, 10) > 0); end); check("Useless Talent: Elemental Devastation (Terrible talent, terrible player)", RED, function (talents) return (talents:rank(1, 11) > 0); end); check("Useless Talent: Elemental Shields (PvP Talent)", RED, function (talents) return (talents:rank(1, 18) > 0); end); --- Enhancement check("Useless Talent: Shield Specialization (You're not a tank)", RED, function (talents) return (talents:rank(2, 2) > 0); end); check("Useless Talent: Maxed Anticipation (Points better spent elsewhere for dps)", RED, function (talents) return (talents:rank(2, 9) > 3); end); check("Useless Talent: Toughness (Terrible talent, terrible player)", RED, function (talents) return (talents:rank(2, 11) > 0); end); --- Restoration --- There's no bad talents in resto, jerk! check("No Totemic Mastery (Hitler had short range on his totems)", YELLOW, function (talents) return (talents:rank(3, 8) < 1); end); -- Elemental check("Not maxed Concussion", RED, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 2) < 5); end); check("No Elemental Focus", RED, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 6) < 1); end); check("No Elemental Precision", RED, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 15) < 3); end); check("Not maxed Lightning Mastery", RED, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 16) < 5); end); check("Not maxed Elemental Mastery", RED, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 17) < 1); end); check("No Totem of Wrath", RED, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 20) < 1); end); check("No Nature's Guidance", RED, function (talents) return (talents:spent(1) > 30) and (talents:rank(3, 6) < 3); end); check("Healing Grace (You're not a healer)", RED, function (talents) return (talents:spent(1) > 30) and (talents:rank(3, 9) > 0); end); check("Convection (No mana issues?)", YELLOW, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 1) < 5); end); check("Earth's Grasp (Filler Talent, shouldn't be maxed)", YELLOW, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 3) > 1); end); check("Reverberation (Filler, You don't do full shock rotations as elemental)", YELLOW, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 7) > 1); end); check("Storm Reach (No range issues?)", YELLOW, function (talents) return (talents:spent(1) > 30) and (talents:rank(1, 12) < 2); end); check("Tidal Mastery (What did you take that's better then spell crit?)", YELLOW, function (talents) return (talents:spent(1) > 30) and (talents:rank(3, 11) < 5); end); -- Enhancement check("Not maxed Enhancing Totems (Strength of Earth)", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 7) < 2); end); check("Not maxed Flurry", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 10) < 5); end); check("Not maxed Mental Quickness (Chocolate Cake)", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 15) < 3); end); check("Not maxed Weapon Mastery", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 16) < 5); end); check("Not maxed Dual Wield Spec", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 17) < 3); end); check("No Stormstrike (What)", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 19) < 1); end); check("Not maxed Unleashed Rage", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 20) < 5); end); check("No Shamanistic Rage", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 21) < 1); end); check("Elemental Focus (Really? With 5% spell crit?)", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(1, 6) > 0); end); check("Ancestral Healing (Really? With 5% spell crit?)", RED, function (talents) return (talents:spent(2) > 30) and (talents:rank(3, 4) > 0); end); check("Went past Reverberation in Elemental", RED, function (talents) return (talents:spent(2) > 30) and ((talents:rank(1, 8) + talents:rank(1, 9) + talents:rank(1, 10) + talents:rank(1, 11)) > 0); end); check("Went past Totemic Mastery in Restoration", RED, function (talents) return (talents:spent(2) > 30) and ((talents:rank(3, 9) + talents:rank(3, 10) + talents:rank(3, 11) + talents:rank(3, 12)) > 0); end); check("No Shamanistic Focus (What else was worth taking over this?)", YELLOW, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 8) < 1); end); check("Not maxed Imp Weapon Totems (You drop WF all the time, get the AP)", YELLOW, function (talents) return (talents:spent(2) > 30) and (talents:rank(2, 12) < 2); end); check("Not maxed Nature's Guidance (Likely went Elemental instead of Resto)", YELLOW, function (talents) return (talents:spent(2) > 30) and (talents:rank(3, 6) < 3); end); -- Restoration check("Nature's Guidance (You don't need +hit to heal)", RED, function (talents) return (talents:spent(3) > 30) and (talents:rank(3, 6) > 0); end); check("Not maxed Healing Focus", RED, function (talents) return (talents:spent(3) > 30) and (talents:rank(3, 7) < 5); end); check("No Nature's Swiftness", RED, function (talents) return (talents:spent(3) > 30) and (talents:rank(3, 13) < 1); end); check("Not maxed Purification", RED, function (talents) return (talents:spent(3) > 30) and (talents:rank(3, 15) < 5); end); check("No Mana Tide", RED, function (talents) return (talents:spent(3) > 30) and (talents:rank(3, 16) < 1); end); check("No Earth Shield", RED, function (talents) return (talents:spent(3) > 30) and (talents:rank(3, 20) < 1); end); check("Points in Elemental outside of Concussion->Elemental Warding", RED, function (talents) return (talents:spent(3) > 30) and ((talents:rank(1, 1) + talents:rank(1, 3) + talents:rank(1, 5)) > 1); end); check("Not maxed Ancestral Healing (Possibly ok if relying on priests)", YELLOW, function (talents) return (talents:spent(3) > 30) and (talents:rank(3, 5) < 3); end); check("Not maxed Healing Grace (Not every player needs -heal aggro)", YELLOW, function (talents) return (talents:spent(3) > 30) and (talents:rank(3, 9) < 3); end); check("Not maxed Imp Chain Heal (HW Spec? Kinda dumb, but possible I guess)", YELLOW, function (talents) return (talents:spent(3) > 30) and (talents:rank(3, 19) < 2); end); check("Improved Lightning Shield", YELLOW, function (talents) return (talents:spent(3) > 30) and (talents:rank(2, 6) > 0); end);