diff options
| author | Shocker <shocker@freakz.ro> | 2011-11-26 23:15:23 +0200 |
|---|---|---|
| committer | Shocker <shocker@freakz.ro> | 2011-11-26 23:15:23 +0200 |
| commit | d26b7210fb13efef51b108defbef77942dae7ed0 (patch) | |
| tree | b33ee4be4665f1ba6ed5d2bc2a28d77c612069f5 /src | |
| parent | 5d6b2739bb8bfb3c6e7cc297d3c51e180dc5260f (diff) | |
Core/Spells: Implement SPELL_AURA_MOD_AUTOATTACK_DAMAGE
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 16 | ||||
| -rwxr-xr-x | src/server/game/Spells/Auras/SpellAuraDefines.h | 2 |
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 |
