diff --git a/zone/client.cpp b/zone/client.cpp index 485d1b782..171bb73c5 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -12418,34 +12418,10 @@ std::vector Client::GetRaidOrGroupOrSelf(bool clients_only) uint16 Client::GetSkill(EQ::skills::SkillType skill_id) const { if (skill_id <= EQ::skills::HIGHEST_SKILL) { - if (spellbonuses.ReduceSkill[skill_id] > 0) { - if (itembonuses.skillmod[skill_id] > 0) { - if (itembonuses.skillmodmax[skill_id] > 0) { - return std::min( - m_pp.skills[skill_id] + itembonuses.skillmodmax[skill_id], - m_pp.skills[skill_id] + ((m_pp.skills[skill_id] * (itembonuses.skillmod[skill_id] - - spellbonuses.ReduceSkill[skill_id])) / 100)); - } - return m_pp.skills[skill_id] + ((m_pp.skills[skill_id] * (itembonuses.skillmod[skill_id] - - spellbonuses.ReduceSkill[skill_id])) / 100); - } - return m_pp.skills[skill_id] - ((m_pp.skills[skill_id] * spellbonuses.ReduceSkill[skill_id]) / 100); - } - - if (itembonuses.skillmod[skill_id] > 0) { - if (itembonuses.skillmodmax[skill_id] > 0) { - if (itembonuses.skillmodmax[skill_id] > 0) { - return std::min( - m_pp.skills[skill_id] + itembonuses.skillmodmax[skill_id], - m_pp.skills[skill_id] * (100 + itembonuses.skillmod[skill_id]) / 100 - ); - } - return m_pp.skills[skill_id] * (100 + itembonuses.skillmod[skill_id]) / 100; - } - return m_pp.skills[skill_id]; - } - return 0; + return (itembonuses.skillmod[skill_id] > 0 ? (itembonuses.skillmodmax[skill_id] > 0 ? std::min( + m_pp.skills[skill_id] + itembonuses.skillmodmax[skill_id], + m_pp.skills[skill_id] * (100 + itembonuses.skillmod[skill_id]) / 100 + ) : m_pp.skills[skill_id] * (100 + itembonuses.skillmod[skill_id]) / 100) : m_pp.skills[skill_id]); } - return 0; }