From 3a9e6c09bcb43b929cccf7cd6a6d837bc6c845b8 Mon Sep 17 00:00:00 2001 From: DiSlord Date: Wed, 17 Dec 2008 01:52:10 +0300 Subject: [PATCH] Implement 277 SPELL_AURA_MOD_MAX_AFFECTED_TARGETS Signed-off-by: DiSlord --- src/game/Spell.cpp | 8 ++++++++ src/game/SpellAuraDefines.h | 2 +- src/game/SpellAuras.cpp | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index a8c1cad16..5d5f6c87f 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1186,7 +1186,15 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,std::list &TagUnitMap) if(Player* modOwner = m_originalCaster->GetSpellModOwner()) modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_JUMP_TARGETS, EffectChainTarget, this); + // Get spell max affected targets uint32 unMaxTargets = m_spellInfo->MaxAffectedTargets; + Unit::AuraList const& mod = m_caster->GetAurasByType(SPELL_AURA_MOD_MAX_AFFECTED_TARGETS); + for(Unit::AuraList::const_iterator m = mod.begin(); m != mod.end(); ++m) + { + if (!(*m)->isAffectedOnSpell(m_spellInfo)) + continue; + unMaxTargets+=(*m)->GetModifier()->m_amount; + } switch(cur) { case TARGET_TOTEM_EARTH: diff --git a/src/game/SpellAuraDefines.h b/src/game/SpellAuraDefines.h index 2b429cae3..80b53f1a2 100644 --- a/src/game/SpellAuraDefines.h +++ b/src/game/SpellAuraDefines.h @@ -319,7 +319,7 @@ enum AuraType SPELL_AURA_274 = 274, SPELL_AURA_MOD_IGNORE_SHAPESHIFT = 275, SPELL_AURA_276 = 276, // Only "Test Mod Damage % Mechanic" spell, possible mod damage done - SPELL_AURA_277 = 277, + SPELL_AURA_MOD_MAX_AFFECTED_TARGETS = 277, SPELL_AURA_MOD_DISARM_RANGED = 278, SPELL_AURA_279 = 279, SPELL_AURA_MOD_TARGET_ARMOR_PCT = 280, diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 2377cc7fe..4caac0d70 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -327,7 +327,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &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::HandleNULL, //277 increase max targets? Use SpellClassMask for spell select + &Aura::HandleNoImmediateEffect, //277 SPELL_AURA_MOD_MAX_AFFECTED_TARGETS Use SpellClassMask for spell select &Aura::HandleNULL, //278 SPELL_AURA_MOD_DISARM_RANGED disarm ranged weapon &Aura::HandleNULL, //279 &Aura::HandleNULL, //280 SPELL_AURA_MOD_TARGET_ARMOR_PCT -- 2.11.4.GIT