Core/Spells: Implement SPELL_AURA_MOD_AUTOATTACK_DAMAGE

This commit is contained in:
Shocker
2011-11-26 23:15:23 +02:00
parent 5d6b2739bb
commit d26b7210fb
2 changed files with 17 additions and 1 deletions
+16
View File
@@ -11617,6 +11617,22 @@ void Unit::MeleeDamageBonus(Unit* victim, uint32 *pdamage, WeaponAttackType attT
float TakenTotalMod = 1.0f;
// ..done
// SPELL_AURA_MOD_AUTOATTACK_DAMAGE
if (!spellProto)
{
AuraEffectList const & autoattackDamage = GetAuraEffectsByType(SPELL_AURA_MOD_AUTOATTACK_DAMAGE);
for (AuraEffectList::const_iterator i = autoattackDamage.begin(); i != autoattackDamage.end(); ++i)
{
int32 amount = (*i)->GetAmount();
if ((*i)->GetSpellInfo()->EquippedItemClass == -1)
AddPctN(DoneTotalMod, amount);
else if (!((*i)->GetSpellInfo()->AttributesEx5 & SPELL_ATTR5_SPECIAL_ITEM_CLASS_CHECK) && ((*i)->GetSpellInfo()->EquippedItemSubClassMask == 0))
AddPctN(DoneTotalMod, amount);
else if (ToPlayer() && ToPlayer()->HasItemFitToSpellRequirements((*i)->GetSpellInfo()))
AddPctN(DoneTotalMod, amount);
}
}
AuraEffectList const& mModDamagePercentDone = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
for (AuraEffectList::const_iterator i = mModDamagePercentDone.begin(); i != mModDamagePercentDone.end(); ++i)
{
@@ -403,7 +403,7 @@ enum AuraType
SPELL_AURA_341 = 341, // cooldown decrease
SPELL_AURA_MOD_TIME_BETWEEN_ATTACKS = 342, // (attack speed) NYI
SPELL_AURA_343 = 343,
SPELL_AURA_MOD_AUTOATTACK_DAMAGE = 344, // (white damage) NYI
SPELL_AURA_MOD_AUTOATTACK_DAMAGE = 344,
SPELL_AURA_BYPASS_ARMOR_FOR_CASTER = 345,
SPELL_AURA_PROGRESS_BAR = 346, // NYI
SPELL_AURA_MOD_SPELL_COOLDOWN_BY_HASTE = 347, // NYI