From d26b7210fb13efef51b108defbef77942dae7ed0 Mon Sep 17 00:00:00 2001 From: Shocker Date: Sat, 26 Nov 2011 23:15:23 +0200 Subject: Core/Spells: Implement SPELL_AURA_MOD_AUTOATTACK_DAMAGE --- src/server/game/Entities/Unit/Unit.cpp | 16 ++++++++++++++++ src/server/game/Spells/Auras/SpellAuraDefines.h | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 777a3a47f44..a97343f204e 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -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) { diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h index 65f394052d8..43c0f5d5ac2 100755 --- a/src/server/game/Spells/Auras/SpellAuraDefines.h +++ b/src/server/game/Spells/Auras/SpellAuraDefines.h @@ -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 -- cgit v1.2.3