["Melee"]=true,--ANY melee, including tanks or healers that are 100% excempt from healer/ranged mechanics (like mistweaver monks)
["MeleeDps"]=true,
["Physical"]=true,
["Ranged"]=true,--ANY ranged, healer and dps included
["RangedDps"]=true,--Only ranged dps
["ManaUser"]=true,--Affected by things like mana drains, or mana detonation, etc
["SpellCaster"]=true,--Has channeled casts, can be interrupted/spell locked by roars, etc, include healers. Use CasterDps if dealing with reflect
["CasterDps"]=true,--Ranged dps that uses spells, relevant for spell reflect type abilities that only reflect spells but not ranged physical such as hunters
["RaidCooldown"]=true,
["RemovePoison"]=true,--from ally
["RemoveDisease"]=true,--from ally
["RemoveCurse"]=true,--from ally
["RemoveMagic"]=true,--from ally
["RemoveEnrage"]=true,--Can remove enemy enrage. returned in 8.x+!
["MagicDispeller"]=true,--from ENEMY, not debuffs on players. use "Healer" or "RemoveMagic" for ally magic dispels. ALL healers can do that on retail, and warlock Imps
["ImmunityDispeller"]=true,--Priest mass dispel or Warrior Shattering Throw (shadowlands)
["HasInterrupt"]=true,--Has an interrupt that is 24 seconds or less CD that is BASELINE (not a talent)
["HasImmunity"]=true,--Has an immunity that can prevent or remove a spell effect (not just one that reduces damage like turtle or dispursion)
}]]
localspecRoleTable
-- Retail
ifisRetailthen
specRoleTable={
[62]={--Arcane Mage
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["CasterDps"]=true,
["MagicDispeller"]=true,
["HasInterrupt"]=true,
["HasImmunity"]=true,
["RemoveCurse"]=true,
},
[1449]={--Initial Mage (used in exiles reach tutorial mode). Treated as hybrid. Utility disabled because that'd require checking tutorial progress
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["CasterDps"]=true,
},
[65]={--Holy Paladin
["Healer"]=true,
["Ranged"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["RaidCooldown"]=true,--Devotion Aura
["RemovePoison"]=true,
["RemoveDisease"]=true,
["RemoveMagic"]=true,
["HasImmunity"]=true,
},
[66]={--Protection Paladin
["Tank"]=true,
["Melee"]=true,
["ManaUser"]=true,
["Physical"]=true,
["RemovePoison"]=true,
["RemoveDisease"]=true,
["HasInterrupt"]=true,
["HasImmunity"]=true,
},
[70]={--Retribution Paladin
["Dps"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["ManaUser"]=true,
["Physical"]=true,
["RemovePoison"]=true,
["RemoveDisease"]=true,
["HasInterrupt"]=true,
["HasImmunity"]=true,
},
[1451]={--Initial Paladin (used in exiles reach tutorial mode). Treated as hybrid. Utility disabled because that'd require checking tutorial progress
["Healer"]=true,
["Tank"]=true,
["Dps"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["ManaUser"]=true,
["Physical"]=true,
["SpellCaster"]=true,
},
[71]={--Arms Warrior
["Dps"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["RaidCooldown"]=true,--Rallying Cry
["Physical"]=true,
["HasInterrupt"]=true,
["ImmunityDispeller"]=true,
},
[73]={--Protection Warrior
["Tank"]=true,
["Melee"]=true,
["Physical"]=true,
["HasInterrupt"]=true,
["RaidCooldown"]=true,--Rallying Cry
["ImmunityDispeller"]=true,
},
[1446]={--Initial Warrior (used in exiles reach tutorial mode). Treated as hybrid. Utility disabled because that'd require checking tutorial progress
["Tank"]=true,
["Dps"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["Physical"]=true,
},
[102]={--Balance Druid
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["CasterDps"]=true,
["RemoveCurse"]=true,
["RemovePoison"]=true,
["RemoveEnrage"]=true,
},
[103]={--Feral Druid
["Dps"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["Physical"]=true,
["RemoveCurse"]=true,
["RemovePoison"]=true,
["HasInterrupt"]=true,
["RemoveEnrage"]=true,
},
[104]={--Guardian Druid
["Tank"]=true,
["Melee"]=true,
["Physical"]=true,
["RemoveCurse"]=true,
["RemovePoison"]=true,
["HasInterrupt"]=true,
["RemoveEnrage"]=true,
},
[105]={-- Restoration Druid
["Healer"]=true,
["Ranged"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["RaidCooldown"]=true,--Tranquility
["RemoveCurse"]=true,
["RemovePoison"]=true,
["RemoveEnrage"]=true,
["RemoveMagic"]=true,
},
[1447]={-- Initial Druid (used in exiles reach tutorial mode). Treated as hybrid. Utility disabled because that'd require checking tutorial progress
["Tank"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["Physical"]=true,
["Healer"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
},
[250]={--Blood DK
["Tank"]=true,
["Melee"]=true,
["Physical"]=true,
["HasInterrupt"]=true,
},
[251]={--Frost DK
["Dps"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["Physical"]=true,
["HasInterrupt"]=true,
},
[1455]={--Initial DK (used in exiles reach tutorial mode). Treated as hybrid. Utility disabled because that'd require checking tutorial progress
["Tank"]=true,
["Dps"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["Physical"]=true,
},
[253]={--Beastmaster Hunter
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["Physical"]=true,
["HasInterrupt"]=true,
["MagicDispeller"]=true,
["RemoveEnrage"]=true,
},
[254]={--Markmanship Hunter Hunter
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["Physical"]=true,
["HasInterrupt"]=true,
["MagicDispeller"]=true,
["RemoveEnrage"]=true,
},
[255]={--Survival Hunter (Legion+)
["Dps"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["Physical"]=true,
["HasInterrupt"]=true,
["MagicDispeller"]=true,
["RemoveEnrage"]=true,
},
[1448]={--Initial Hunter (used in exiles reach tutorial mode). Treated as hybrid. Utility disabled because that'd require checking tutorial progress
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["Physical"]=true,
},
[256]={--Discipline Priest
["Healer"]=true,
["Ranged"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["CasterDps"]=true,--Iffy. Technically yes, but this can't be used to determine eligable target for dps only debuffs
specRoleTable[63]=specRoleTable[62]--Frost Mage same as arcane
specRoleTable[64]=specRoleTable[62]--Fire Mage same as arcane
specRoleTable[72]=specRoleTable[71]--Fury Warrior same as Arms
specRoleTable[252]=specRoleTable[251]--Unholy DK same as frost
specRoleTable[257]=specRoleTable[256]--Holy Priest same as disc
specRoleTable[260]=specRoleTable[259]--Combat Rogue same as Assassination
specRoleTable[261]=specRoleTable[259]--Subtlety Rogue same as Assassination
specRoleTable[266]=specRoleTable[265]--Demonology Warlock same as Affliction
specRoleTable[267]=specRoleTable[265]--Destruction Warlock same as Affliction
else
localIsSpellKnown=IsSpellKnown
specRoleTable={
["MAGE1"]={--Arcane Mage
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["CasterDps"]=true,
["HasInterrupt"]=true,
["HasImmunity"]=true,
["RemoveCurse"]=true,
["MagicDispeller"]=IsSpellKnown(30449),--Spellsteal in TBC
},
["PALADIN1"]={--Holy Paladin
["Healer"]=true,
["Melee"]=true,--They melee when oom?
["Ranged"]=true,
["CasterDps"]=true,--Judgements, exorcism, etc
["ManaUser"]=true,
["SpellCaster"]=true,
["RaidCooldown"]=true,--Devotion Aura
["RemovePoison"]=true,
["RemoveDisease"]=true,
["RemoveMagic"]=true,
["HasImmunity"]=true,
},
["PALADIN2"]={--Protection Paladin
["Tank"]=true,
["Melee"]=true,
["ManaUser"]=true,
["Physical"]=true,
["CasterDps"]=true,--Judgements, exorcism, etc
["RemovePoison"]=true,
["RemoveDisease"]=true,
["RemoveMagic"]=true,
["HasImmunity"]=true,
},
["PALADIN3"]={--Retribution Paladin
["Tank"]=true,
["Dps"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["CasterDps"]=true,--Judgements, exorcism, etc
["ManaUser"]=true,
["Physical"]=true,
["RemovePoison"]=true,
["RemoveDisease"]=true,
["RemoveMagic"]=true,
["HasImmunity"]=true,
},
["WARRIOR1"]={--Arms Warrior
["Dps"]=true,
["Tank"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["Physical"]=true,
["HasInterrupt"]=true,
},
["WARRIOR3"]={--Protection Warrior
["Tank"]=true,
["Melee"]=true,
["Physical"]=true,
["HasInterrupt"]=true,
["MagicDispeller"]=(IsSpellKnown(23922)orIsSpellKnown(23923)orIsSpellKnown(23924)orIsSpellKnown(23925)orIsSpellKnown(25258)orIsSpellKnown(30356)),--Shield Slam
},
["DRUID1"]={--Balance Druid
["Healer"]=true,
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["CasterDps"]=true,
["RemoveCurse"]=true,
},
["DRUID2"]={--Feral Druid
["Healer"]=true,
["Dps"]=true,
["Tank"]=true,
["Melee"]=true,
["MeleeDps"]=true,
["Physical"]=true,
["RemoveCurse"]=true,
},
["DRUID3"]={-- Restoration Druid
["Healer"]=true,
["Ranged"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["RaidCooldown"]=true,--Tranquility
["RemoveCurse"]=true,
},
["HUNTER1"]={--Beastmaster Hunter
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["Physical"]=true,
["RemoveEnrage"]=true,
["ManaUser"]=true,
},
["HUNTER2"]={--Markmanship Hunter Hunter
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["Physical"]=true,
["RemoveEnrage"]=true,
["ManaUser"]=true,
},
["HUNTER3"]={--Survival Hunter
["Dps"]=true,
["Ranged"]=true,
["RangedDps"]=true,
["Physical"]=true,
["RemoveEnrage"]=true,
["ManaUser"]=true,
},
["PRIEST1"]={--Discipline Priest
["Healer"]=true,
["Ranged"]=true,
["ManaUser"]=true,
["SpellCaster"]=true,
["CasterDps"]=true,--Iffy. Technically yes, but this can't be used to determine eligable target for dps only debuffs