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; }