Skip to content

Commit

Permalink
Combat Rolls Overhaul: Hotfix auras and new unit fields interaction
Browse files Browse the repository at this point in the history
Correct application/removal
  • Loading branch information
Warlockbugs authored and Fabi committed Jan 3, 2017
1 parent d9efa75 commit 1b75d44
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions src/game/SpellAuras.cpp
Expand Up @@ -6191,40 +6191,40 @@ 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;
}

((Player*)target)->UpdateDodgePercentage();
// 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;
}

Expand All @@ -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;
}

Expand Down Expand Up @@ -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);
}
}

Expand All @@ -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);
}
}

Expand All @@ -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)
Expand All @@ -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);
}
Expand Down

0 comments on commit 1b75d44

Please sign in to comment.