diff options
author | megamage <none@none> | 2008-12-23 20:19:40 -0600 |
---|---|---|
committer | megamage <none@none> | 2008-12-23 20:19:40 -0600 |
commit | c81299e6536e249ca05eebf100f3f350522da7da (patch) | |
tree | 4329c771076612bc55e52febfb5f323a2f21007e | |
parent | afc598bde2dff64a17a4b82f6e3b87d83a9a28da (diff) |
*Fix the bug that proc AOE buff does not work.
--HG--
branch : trunk
-rw-r--r-- | src/game/Spell.cpp | 18 | ||||
-rw-r--r-- | src/game/SpellMgr.cpp | 16 |
2 files changed, 21 insertions, 13 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 743d5bc039d..ffac28c7c58 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1467,8 +1467,11 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,std::list<Unit*> &TagUnitMap) TagUnitMap.push_back(owner); break; case TARGET_UNIT_PET: - if(Pet* tmpUnit = m_caster->GetPet()) - TagUnitMap.push_back(tmpUnit); + if(Pet* pet = m_caster->GetPet()) + TagUnitMap.push_back(pet); + break; + case TARGET_UNIT_PARTY_CASTER: + m_caster->GetPartyMember(TagUnitMap, radius); break; } }break; @@ -1560,6 +1563,11 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,std::list<Unit*> &TagUnitMap) case TARGET_UNIT_AREA_ALLY: SearchAreaTarget(TagUnitMap, radius, PUSH_DEST_CENTER, SPELL_TARGETS_FRIENDLY); break; + case TARGET_UNIT_AREA_PARTY_GROUND: + m_targets.m_targetMask |= TARGET_FLAG_DEST_LOCATION; + case TARGET_UNIT_AREA_PARTY: + m_caster->GetPartyMember(TagUnitMap, radius); + break; case TARGET_UNIT_AREA_ENTRY_GROUND: m_targets.m_targetMask |= TARGET_FLAG_DEST_LOCATION; case TARGET_UNIT_AREA_ENTRY: @@ -1752,12 +1760,6 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,std::list<Unit*> &TagUnitMap) break; } - case TARGET_UNIT_AREA_PARTY_GROUND: - m_targets.m_targetMask |= TARGET_FLAG_DEST_LOCATION; - case TARGET_UNIT_PARTY_CASTER: - case TARGET_UNIT_AREA_PARTY: - m_caster->GetPartyMember(TagUnitMap, radius); - break; case TARGET_RANDOM_RAID_MEMBER: { if (m_caster->GetTypeId() == TYPEID_PLAYER) diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 88fe7cdb4d8..432682d618e 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -80,6 +80,7 @@ SpellMgr::SpellMgr() case TARGET_UNIT_CASTER_FISHING: case TARGET_UNIT_MASTER: case TARGET_UNIT_PET: + case TARGET_UNIT_PARTY_CASTER: SpellTargetType[i] = TARGET_TYPE_UNIT_CASTER; break; case TARGET_UNIT_MINIPET: @@ -102,6 +103,8 @@ SpellMgr::SpellMgr() case TARGET_UNIT_AREA_ALLY: case TARGET_UNIT_AREA_ENTRY_GROUND: case TARGET_UNIT_AREA_ENTRY: + case TARGET_UNIT_AREA_PARTY_GROUND: + case TARGET_UNIT_AREA_PARTY: case TARGET_UNIT_AREA_ENEMY_CHANNEL: SpellTargetType[i] = TARGET_TYPE_AREA_DEST; break; @@ -2001,11 +2004,14 @@ void SpellMgr::LoadSpellCustomAttr() bool auraSpell = true; for(uint32 j = 0; j < 3; ++j) { - if(spellInfo->Effect[j] && spellInfo->Effect[j] != SPELL_EFFECT_APPLY_AURA) - { - auraSpell = false; - break; - } + if(spellInfo->Effect[j]) + if(spellInfo->Effect[j] != SPELL_EFFECT_APPLY_AURA + || SpellTargetType[spellInfo->EffectImplicitTargetA[j]] != TARGET_TYPE_UNIT_TARGET) + //ignore target party for now + { + auraSpell = false; + break; + } } if(auraSpell) mSpellCustomAttr[i] |= SPELL_ATTR_CU_AURA_SPELL; |