mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-11 11:48:37 +00:00
[Spells] Implemented SPA 122 SE_ReduceSkill (#4234)
* Implement SPA122 v1 * Implemented SPA 122 ReduceSkill SE_ReduceSkill SPA 122 base: skill id, limit: none, max: none, formula: % skill is reduced (positive) * Implemented SPA 122 Reduce Skill remove incorrect SPA addition * Break out multiple lines * reformatted reformatted --------- Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
@@ -12414,3 +12414,34 @@ std::vector<Mob*> Client::GetRaidOrGroupOrSelf(bool clients_only)
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user