public static function GetRole() { if (self::$role > 0) { return self::$role; } switch (self::GetClassID()) { case CLASS_WARRIOR: case CLASS_ROGUE: case CLASS_DK: self::$role = ROLE_MELEE; return ROLE_MELEE; case CLASS_PALADIN: case CLASS_DRUID: case CLASS_SHAMAN: // Hybrid classes. Need to check active talent tree. foreach (self::$fullTalentData['specsData'] as $spec) { if ($spec['active'] == 0) { continue; } if ($spec['treeOne'] > $spec['treeTwo'] && $spec['treeOne'] > $spec['treeThree']) { if (self::GetClassID() == CLASS_PALADIN) { self::$role = ROLE_HEALER; return self::$role; // Paladin: Holy } else { self::$role = ROLE_CASTER; return self::$role; // Druid: Balance, Shaman: Elemental } } elseif ($spec['treeTwo'] > $spec['treeOne'] && $spec['treeTwo'] > $spec['treeThree']) { if (self::GetClassID() == CLASS_PALADIN) { self::$role = ROLE_TANK; // Paladin: Protection } else { self::$role = ROLE_MELEE; //Druid: Feral, Shaman: Enhancemenet } return self::$role; } else { if (self::GetClassID() == CLASS_PALADIN) { self::$role = ROLE_MELEE; return self::$role; // Retribution } else { self::$role = ROLE_HEALER; return self::$role; // Shaman, Druid: Restoration } } } break; case CLASS_PRIEST: foreach (self::$fullTalentData['specsData'] as $spec) { if ($spec['active'] == 1) { if ($spec['treeThree'] > $spec['treeOne'] && $spec['treeThree'] > $spec['treeTwo']) { self::$role = ROLE_CASTER; return self::$role; } else { self::$role = ROLE_HEALER; return self::$role; } } } break; case CLASS_MAGE: case CLASS_WARLOCK: self::$role = ROLE_CASTER; return self::$role; break; case CLASS_HUNTER: self::$role = ROLE_RANGED; return self::$role; break; } }