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())) if (creatureTypeMask & uint32((*i)->GetMiscValue()))
DoneTotalMod *= ((*i)->GetAmount()+100.0f)/100.0f; 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) // done scripted mod (take it from owner)
Unit *owner = GetOwner() ? GetOwner() : this; Unit *owner = GetOwner() ? GetOwner() : this;
AuraEffectList const &mOverrideClassScript= owner->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); 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())) if (creatureTypeMask & uint32((*i)->GetMiscValue()))
DoneTotalMod *= ((*i)->GetAmount()+100.0f)/100.0f; 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) // done scripted mod (take it from owner)
Unit *owner = GetOwner() ? GetOwner() : this; Unit *owner = GetOwner() ? GetOwner() : this;
AuraEffectList const &mOverrideClassScript= owner->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); AuraEffectList const &mOverrideClassScript= owner->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
@@ -359,7 +359,7 @@ enum AuraType
SPELL_AURA_SHARE_DAMAGE_PCT = 300, SPELL_AURA_SHARE_DAMAGE_PCT = 300,
SPELL_AURA_SCHOOL_HEAL_ABSORB = 301, SPELL_AURA_SCHOOL_HEAL_ABSORB = 301,
SPELL_AURA_302 = 302, SPELL_AURA_302 = 302,
SPELL_AURA_303 = 303, SPELL_AURA_MOD_DAMAGE_DONE_VERSUS_AURASTATE = 303,
SPELL_AURA_304 = 304, SPELL_AURA_304 = 304,
SPELL_AURA_MOD_MINIMUM_SPEED = 305, SPELL_AURA_MOD_MINIMUM_SPEED = 305,
SPELL_AURA_306 = 306, SPELL_AURA_306 = 306,
@@ -357,7 +357,7 @@ pAuraEffectHandler AuraEffectHandler[TOTAL_AURAS]=
&AuraEffect::HandleNoImmediateEffect, //300 SPELL_AURA_SHARE_DAMAGE_PCT implemented in Unit::DealDamage &AuraEffect::HandleNoImmediateEffect, //300 SPELL_AURA_SHARE_DAMAGE_PCT implemented in Unit::DealDamage
&AuraEffect::HandleNoImmediateEffect, //301 SPELL_AURA_SCHOOL_HEAL_ABSORB implemented in Unit::CalcHealAbsorb &AuraEffect::HandleNoImmediateEffect, //301 SPELL_AURA_SCHOOL_HEAL_ABSORB implemented in Unit::CalcHealAbsorb
&AuraEffect::HandleNULL, //302 0 spells in 3.3.5 &AuraEffect::HandleNULL, //302 0 spells in 3.3.5
&AuraEffect::HandleNULL, //303 SPELL_AURA_MOD_DMG_VERSUS_AURASTATE_PCT? - 22 and 19 look like serverside aurastates (22 - dark, gas cloud, 19 light, ooze) &AuraEffect::HandleNoImmediateEffect, //303 SPELL_AURA_MOD_DAMAGE_DONE_VERSUS_AURASTATE implemented in Unit::SpellDamageBonus, Unit::MeleeDamageBonus
&AuraEffect::HandleUnused, //304 clientside &AuraEffect::HandleUnused, //304 clientside
&AuraEffect::HandleAuraModIncreaseSpeed, //305 SPELL_AURA_MOD_MINIMUM_SPEED &AuraEffect::HandleAuraModIncreaseSpeed, //305 SPELL_AURA_MOD_MINIMUM_SPEED
&AuraEffect::HandleNULL, //306 0 spells in 3.3.5 &AuraEffect::HandleNULL, //306 0 spells in 3.3.5