[10743] Add AP/RAP bonus data to spell_bonus_data.

Also remove related hardcoded cases.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
insider42 2010-11-19 05:48:19 +03:00 committed by VladimirMangos
parent f27741460f
commit 355f172fc6
8 changed files with 116 additions and 78 deletions

View file

@ -4788,14 +4788,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
switch (spellProto->SpellFamilyName)
{
case SPELLFAMILY_GENERIC:
{
// Pounce Bleed
if (spellProto->SpellIconID == 147 && spellProto->SpellVisual[0] == 0)
// $AP*0.18/6 bonus per tick
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 3 / 100);
break;
}
case SPELLFAMILY_WARRIOR:
{
// Rend
@ -4816,14 +4808,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
}
case SPELLFAMILY_DRUID:
{
// Rake
if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000000001000) && spellProto->Effect[EFFECT_INDEX_2] == SPELL_EFFECT_ADD_COMBO_POINTS)
// $AP*0.18/3 bonus per tick
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 6 / 100);
// Lacerate
if (spellProto->SpellFamilyFlags & UI64LIT(0x000000010000000000))
// $AP*0.05/5 bonus per tick
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100);
// Rip
if (spellProto->SpellFamilyFlags & UI64LIT(0x000000000000800000))
{
@ -4845,10 +4829,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
}
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * cp / 100);
}
// Lock Jaw
if (spellProto->SpellFamilyFlags & UI64LIT(0x1000000000000000))
// 0.15*$AP
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 15 / 100);
break;
}
case SPELLFAMILY_ROGUE:
@ -4868,26 +4848,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
if (cp > 5) cp = 5;
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * AP_per_combo[cp]);
}
// Garrote
if (spellProto->SpellFamilyFlags & UI64LIT(0x000000000000000100))
// $AP*0.07 bonus per tick
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 7 / 100);
// Deadly Poison
if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000000010000))
// 0.12*$AP / 4 * amount of stack
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 3 * GetStackAmount() / 100);
break;
}
case SPELLFAMILY_HUNTER:
{
// Serpent Sting
if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000000004000))
// $RAP*0.2/5 bonus per tick
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 0.2 / 5);
// Immolation Trap
if ((spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000004)) && spellProto->SpellIconID == 678)
// $RAP*0.1/5 bonus per tick
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 10 / 500);
break;
}
case SPELLFAMILY_PALADIN:
@ -4904,15 +4864,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
}
break;
}
case SPELLFAMILY_DEATHKNIGHT:
{
//Frost Fever and Blood Plague AP scale
if (spellProto->SpellFamilyFlags & UI64LIT(0x400080000000000))
{
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.055f * 1.15f);
}
break;
}
default:
break;
}