aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2011-11-26 23:15:23 +0200
committerShocker <shocker@freakz.ro>2011-11-26 23:15:23 +0200
commitd26b7210fb13efef51b108defbef77942dae7ed0 (patch)
treeb33ee4be4665f1ba6ed5d2bc2a28d77c612069f5 /src
parent5d6b2739bb8bfb3c6e7cc297d3c51e180dc5260f (diff)
Core/Spells: Implement SPELL_AURA_MOD_AUTOATTACK_DAMAGE
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp16
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraDefines.h2
2 files changed, 17 insertions, 1 deletions
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