Core/Spells: Implemented aura type 303 (SPELL_AURA_MOD_DAMAGE_DONE_VERSUS_AURASTATE), patch by Azuritus

Closes issue #3773.

--HG--
branch : trunk
This commit is contained in:
Shauren
2010-09-05 12:05:49 +02:00
parent b39a21b795
commit 0b743795d6
3 changed files with 14 additions and 2 deletions
+12
View File
@@ -10270,6 +10270,12 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
if (creatureTypeMask & uint32((*i)->GetMiscValue()))
DoneTotalMod *= ((*i)->GetAmount()+100.0f)/100.0f;
// bonus against aurastate
AuraEffectList const &mDamageDoneVersusAurastate = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_DONE_VERSUS_AURASTATE);
for (AuraEffectList::const_iterator i = mDamageDoneVersusAurastate.begin(); i != mDamageDoneVersusAurastate.end(); ++i)
if (pVictim->HasAuraState(AuraState((*i)->GetMiscValue())))
DoneTotalMod *= ((*i)->GetAmount() + 100.0f) / 100.0f;
// done scripted mod (take it from owner)
Unit *owner = GetOwner() ? GetOwner() : this;
AuraEffectList const &mOverrideClassScript= owner->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
@@ -11552,6 +11558,12 @@ void Unit::MeleeDamageBonus(Unit *pVictim, uint32 *pdamage, WeaponAttackType att
if (creatureTypeMask & uint32((*i)->GetMiscValue()))
DoneTotalMod *= ((*i)->GetAmount()+100.0f)/100.0f;
// bonus against aurastate
AuraEffectList const &mDamageDoneVersusAurastate = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_DONE_VERSUS_AURASTATE);
for (AuraEffectList::const_iterator i = mDamageDoneVersusAurastate.begin(); i != mDamageDoneVersusAurastate.end(); ++i)
if (pVictim->HasAuraState(AuraState((*i)->GetMiscValue())))
DoneTotalMod *= ((*i)->GetAmount() + 100.0f) / 100.0f;
// done scripted mod (take it from owner)
Unit *owner = GetOwner() ? GetOwner() : this;
AuraEffectList const &mOverrideClassScript= owner->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);