diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index a8f5417676..eeeb91553c 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6191,26 +6191,26 @@ void Aura::HandleAuraIncreaseBaseHealthPercent(bool apply, bool /*Real*/) /*** FIGHT ***/ /********************************/ -void Aura::HandleAuraModParryPercent(bool /*apply*/, bool /*Real*/) +void Aura::HandleAuraModParryPercent(bool apply, bool /*Real*/) { Unit* target = GetTarget(); if (target->GetTypeId() != TYPEID_PLAYER) { - target->m_modParryChance += m_modifier.m_amount; + target->m_modParryChance += (apply ? m_modifier.m_amount : -m_modifier.m_amount); return; }; ((Player*)target)->UpdateParryPercentage(); } -void Aura::HandleAuraModDodgePercent(bool /*apply*/, bool /*Real*/) +void Aura::HandleAuraModDodgePercent(bool apply, bool /*Real*/) { Unit* target = GetTarget(); if (target->GetTypeId() != TYPEID_PLAYER) { - target->m_modDodgeChance += m_modifier.m_amount; + target->m_modDodgeChance += (apply ? m_modifier.m_amount : -m_modifier.m_amount); return; } @@ -6218,13 +6218,13 @@ void Aura::HandleAuraModDodgePercent(bool /*apply*/, bool /*Real*/) // sLog.outError("BONUS DODGE CHANCE: + %f", float(m_modifier.m_amount)); } -void Aura::HandleAuraModBlockChancePercent(bool /*apply*/, bool /*Real*/) +void Aura::HandleAuraModBlockPercent(bool apply, bool /*Real*/) { Unit* target = GetTarget(); if (target->GetTypeId() != TYPEID_PLAYER) { - target->m_modBlockChance += m_modifier.m_amount; + target->m_modBlockChance += (apply ? m_modifier.m_amount : -m_modifier.m_amount); return; } @@ -6251,7 +6251,7 @@ void Aura::HandleAuraModCritPercent(bool apply, bool Real) if (target->GetTypeId() != TYPEID_PLAYER) { for (int i = 0; i < MAX_ATTACK; ++i) - target->m_modCritChance[i] += m_modifier.m_amount; + target->m_modCritChance[i] += (apply ? m_modifier.m_amount : -m_modifier.m_amount); return; } @@ -6290,8 +6290,8 @@ void Aura::HandleModHitChance(bool apply, bool /*Real*/) } else { - target->m_modMeleeHitChance += apply ? m_modifier.m_amount : (-m_modifier.m_amount); - target->m_modRangedHitChance += apply ? m_modifier.m_amount : (-m_modifier.m_amount); + target->m_modMeleeHitChance += (apply ? m_modifier.m_amount : -m_modifier.m_amount); + target->m_modRangedHitChance += (apply ? m_modifier.m_amount : -m_modifier.m_amount); } } @@ -6303,7 +6303,7 @@ void Aura::HandleModSpellHitChance(bool apply, bool /*Real*/) } else { - GetTarget()->m_modSpellHitChance += apply ? m_modifier.m_amount : (-m_modifier.m_amount); + GetTarget()->m_modSpellHitChance += (apply ? m_modifier.m_amount : -m_modifier.m_amount); } } @@ -6318,14 +6318,14 @@ void Aura::HandleModSpellCritChance(bool apply, bool Real) if (target->GetTypeId() == TYPEID_UNIT) { for (uint8 school = SPELL_SCHOOL_NORMAL; school < MAX_SPELL_SCHOOL; ++school) - target->m_modSpellCritChance[school] += (apply ? m_modifier.m_amount : (-m_modifier.m_amount)); + target->m_modSpellCritChance[school] += (apply ? m_modifier.m_amount : -m_modifier.m_amount); return; } ((Player*)target)->UpdateAllSpellCritChances(); } -void Aura::HandleModSpellCritChanceShool(bool /*apply*/, bool Real) +void Aura::HandleModSpellCritChanceShool(bool apply, bool Real) { // spells required only Real aura add/remove if (!Real) @@ -6338,7 +6338,7 @@ void Aura::HandleModSpellCritChanceShool(bool /*apply*/, bool Real) if (m_modifier.m_miscvalue & (1 << school)) { if (target->GetTypeId() == TYPEID_UNIT) - target->m_modSpellCritChance[school] += m_modifier.m_amount; + target->m_modSpellCritChance[school] += (apply ? m_modifier.m_amount : -m_modifier.m_amount); else ((Player*)target)->UpdateSpellCritChance(school); }