diff options
author | megamage <none@none> | 2009-05-02 15:49:35 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-05-02 15:49:35 -0500 |
commit | 823cb628be711520fec7467ee0583953a09e7ac8 (patch) | |
tree | 8545ab3965b0be35def98ffdad693e01c0c6566f /src | |
parent | fa46340b9a9504cf5ce07f9cef5b1cff959d151e (diff) |
*Add some removed part in settargetmap in last merge.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Spell.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 8817854971e..ea4ff986076 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1684,12 +1684,10 @@ void Spell::SetTargetMap(uint32 i, uint32 cur) } case TARGET_TYPE_AREA_SRC: - CheckSrc(); pushType = PUSH_SRC_CENTER; break; case TARGET_TYPE_AREA_DST: - CheckDst(); pushType = PUSH_DST_CENTER; break; @@ -1997,6 +1995,7 @@ void Spell::SetTargetMap(uint32 i, uint32 cur) if(modOwner) modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_RADIUS, radius, this); + radius *= m_spellValue->RadiusMod; std::list<Unit*> unitList; if(targetType == SPELL_TARGETS_ENTRY) @@ -2074,11 +2073,17 @@ void Spell::SetTargetMap(uint32 i, uint32 cur) if(!unitList.empty()) { - if(m_spellValue->MaxAffectedTargets) + if(uint32 maxTargets = m_spellValue->MaxAffectedTargets) { + Unit::AuraEffectList const& Auras = m_caster->GetAurasByType(SPELL_AURA_MOD_MAX_AFFECTED_TARGETS); + for(Unit::AuraEffectList::const_iterator j = Auras.begin();j != Auras.end(); ++j) + if((*j)->isAffectedOnSpell(m_spellInfo)) + maxTargets += (*j)->GetAmount(); + if(m_spellInfo->Id == 5246) //Intimidating Shout unitList.remove(m_targets.getUnitTarget()); - Trinity::RandomResizeList(unitList, m_spellValue->MaxAffectedTargets); + + Trinity::RandomResizeList(unitList, maxTargets); } for(std::list<Unit*>::iterator itr = unitList.begin(); itr != unitList.end(); ++itr) |