diff options
-rw-r--r-- | src/game/Spell.cpp | 7 | ||||
-rw-r--r-- | src/game/SpellAuraDefines.h | 2 | ||||
-rw-r--r-- | src/game/SpellAuras.cpp | 6 |
3 files changed, 11 insertions, 4 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index cdc470c80f2..b83607a49a9 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1442,6 +1442,13 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,std::list<Unit*> &TagUnitMap) uint32 EffectChainTarget = m_spellInfo->EffectChainTarget[i]; uint32 unMaxTargets = m_spellInfo->MaxAffectedTargets; + Unit::AuraList const& Auras = m_caster->GetAurasByType(SPELL_AURA_MOD_ABILITY_AFFECTED_TARGETS); + for(Unit::AuraList::const_iterator j = Auras.begin();j != Auras.end(); ++j) + { + if((*j)->isAffectedOnSpell(m_spellInfo)) + unMaxTargets+=(*j)->GetModifier()->m_amount; + } + if(m_originalCaster) { if(Player* modOwner = m_originalCaster->GetSpellModOwner()) diff --git a/src/game/SpellAuraDefines.h b/src/game/SpellAuraDefines.h index 9d543a6ba69..8f8483d804e 100644 --- a/src/game/SpellAuraDefines.h +++ b/src/game/SpellAuraDefines.h @@ -321,7 +321,7 @@ enum AuraType SPELL_AURA_ABILITY_CONSUME_NO_AMMO = 274, SPELL_AURA_MOD_IGNORE_SHAPESHIFT = 275, SPELL_AURA_276 = 276, // Only "Test Mod Damage % Mechanic" spell, possible mod damage done - SPELL_AURA_MOD_MAX_AFFECTED_TARGETS = 277, + SPELL_AURA_MOD_ABILITY_AFFECTED_TARGETS = 277, SPELL_AURA_MOD_DISARM_RANGED = 278, SPELL_AURA_279 = 279, SPELL_AURA_MOD_WEAPONTYPE_IGNORE_TARGET_RESISTANCE = 280, diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 35c01fefb79..644f5b66eca 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -328,10 +328,10 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &Aura::HandleNoImmediateEffect, //271 SPELL_AURA_MOD_DAMAGE_FROM_CASTER implemented in Unit::SpellDamageBonus &Aura::HandleNULL, //272 reduce spell cast time? &Aura::HandleNULL, //273 - &Aura::HandleNoImmediateEffect, //274 SPELL_AURA_ABILITY_CONSUME_NO_AMMO implemented in spell::CalculateDamageDoneForAllTargets + &Aura::HandleNULL, //274 proc free shot? &Aura::HandleNoImmediateEffect, //275 SPELL_AURA_MOD_IGNORE_SHAPESHIFT Use SpellClassMask for spell select &Aura::HandleNULL, //276 mod damage % mechanic? - &Aura::HandleNoImmediateEffect, //277 SPELL_AURA_MOD_MAX_AFFECTED_TARGETS Use SpellClassMask for spell select + &Aura::HandleNoImmediateEffect, //277 SPELL_AURA_MOD_ABILITY_AFFECTED_TARGETS implemented in spell::settargetmap &Aura::HandleAuraModDisarm, //278 SPELL_AURA_MOD_DISARM_RANGED disarm ranged weapon &Aura::HandleNULL, //279 &Aura::HandleNULL, //280 SPELL_AURA_MOD_TARGET_ARMOR_PCT @@ -3227,7 +3227,7 @@ void Aura::HandleAuraModDisarm(bool apply, bool Real) return; AuraType type = GetModifier()->m_auraname; - //Prevent handling aura mod twice + //Prevent handling aura twice if(apply && m_target->GetAurasByType(type).size()>1) return; if(!apply && m_target->HasAuraType(type)) |