private static function CalculateCharacterAgility($recalculate = false)
 {
     if (!self::IsCorrect()) {
         WoW_Log::WriteError('%s : character was not found.', __METHOD__);
         return false;
     }
     if (isset(self::$stats_holder['base_stats']['agility']) && !$recalculate) {
         return true;
     }
     self::$stats_holder['base_stats']['agility'] = array('armor' => self::GetStat(STAT_AGILITY) * ARMOR_PER_AGILITY, 'attack' => WoW_Utils::GetAttackPowerForStat(STAT_AGILITY, self::GetStat(STAT_AGILITY), self::GetClassID()), 'base' => self::GetStat(STAT_AGILITY) - WoW_Utils::GetFloatValue(self::GetPosStat(STAT_AGILITY), 0) - WoW_Utils::GetFloatValue(self::GetNegStat(STAT_AGILITY), 0), 'hitCritPercent' => floor(WoW_Utils::GetCritChanceFromAgility(self::$rating, self::GetClassID(), self::GetStat(STAT_AGILITY))), 'effective' => self::GetStat(STAT_AGILITY));
     return true;
 }