diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-06-22 11:04:57 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2020-06-22 11:04:57 +0200 |
commit | c3dcbe04dcea04ce3f453f99d44ebebb542bcda7 (patch) | |
tree | 6e2e1a35baeb7d88b0b22f493e2718e063c993d1 | |
parent | 01d098830a64622262226f7915f872e1cfb301f6 (diff) |
Core/Spells: Assign spell effect handles for new apply aura effects
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuras.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 3 |
5 files changed, 18 insertions, 14 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 2db4d4f8b3c..18b4539e6e6 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5702,14 +5702,7 @@ void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const bool AuraEffect::IsAreaAuraEffect() const { - if (_effectInfo->Effect == SPELL_EFFECT_APPLY_AREA_AURA_PARTY || - _effectInfo->Effect == SPELL_EFFECT_APPLY_AREA_AURA_RAID || - _effectInfo->Effect == SPELL_EFFECT_APPLY_AREA_AURA_FRIEND || - _effectInfo->Effect == SPELL_EFFECT_APPLY_AREA_AURA_ENEMY || - _effectInfo->Effect == SPELL_EFFECT_APPLY_AREA_AURA_PET || - _effectInfo->Effect == SPELL_EFFECT_APPLY_AREA_AURA_OWNER) - return true; - return false; + return _effectInfo->IsAreaAuraEffect(); } void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) const diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index bc43ee19e9b..5e4791b805d 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -2285,7 +2285,7 @@ void UnitAura::FillTargetMap(std::unordered_map<Unit*, uint32>& targets, Unit* c std::deque<Unit*> units; // non-area aura - if (effect->Effect == SPELL_EFFECT_APPLY_AURA) + if (effect->Effect == SPELL_EFFECT_APPLY_AURA || effect->Effect == SPELL_EFFECT_202) { units.push_back(GetUnitOwner()); } @@ -2299,6 +2299,7 @@ void UnitAura::FillTargetMap(std::unordered_map<Unit*, uint32>& targets, Unit* c { case SPELL_EFFECT_APPLY_AREA_AURA_PARTY: case SPELL_EFFECT_APPLY_AREA_AURA_RAID: + case SPELL_EFFECT_APPLY_AREA_AURA_PARTY_NONRANDOM: { units.push_back(GetUnitOwner()); Trinity::AnyGroupedUnitInObjectRangeCheck u_check(GetUnitOwner(), GetUnitOwner(), radius, effect->Effect == SPELL_EFFECT_APPLY_AREA_AURA_RAID, m_spellInfo->HasAttribute(SPELL_ATTR3_ONLY_TARGET_PLAYERS), false, true); @@ -2331,6 +2332,12 @@ void UnitAura::FillTargetMap(std::unordered_map<Unit*, uint32>& targets, Unit* c units.push_back(owner); break; } + case SPELL_EFFECT_APPLY_AURA_ON_PET: + { + if (Unit* pet = ObjectAccessor::GetUnit(*GetUnitOwner(), GetUnitOwner()->GetPetGUID())) + units.push_back(pet); + break; + } } } } diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index b02c080fe9b..e0fa7462a7c 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -252,7 +252,7 @@ NonDefaultConstructible<pEffect> SpellEffects[TOTAL_SPELL_EFFECTS] = &Spell::EffectNULL, //171 SPELL_EFFECT_171 &Spell::EffectResurrectWithAura, //172 SPELL_EFFECT_RESURRECT_WITH_AURA &Spell::EffectUnlockGuildVaultTab, //173 SPELL_EFFECT_UNLOCK_GUILD_VAULT_TAB - &Spell::EffectNULL, //174 SPELL_EFFECT_APPLY_AURA_ON_PET + &Spell::EffectApplyAura, //174 SPELL_EFFECT_APPLY_AURA_ON_PET &Spell::EffectUnused, //175 SPELL_EFFECT_175 unused &Spell::EffectSanctuary, //176 SPELL_EFFECT_SANCTUARY_2 &Spell::EffectNULL, //177 SPELL_EFFECT_177 @@ -280,7 +280,7 @@ NonDefaultConstructible<pEffect> SpellEffects[TOTAL_SPELL_EFFECTS] = &Spell::EffectNULL, //199 SPELL_EFFECT_199 &Spell::EffectHealBattlePetPct, //200 SPELL_EFFECT_HEAL_BATTLEPET_PCT &Spell::EffectEnableBattlePets, //201 SPELL_EFFECT_ENABLE_BATTLE_PETS - &Spell::EffectNULL, //202 SPELL_EFFECT_202 + &Spell::EffectApplyAura, //202 SPELL_EFFECT_202 &Spell::EffectNULL, //203 SPELL_EFFECT_203 &Spell::EffectNULL, //204 SPELL_EFFECT_CHANGE_BATTLEPET_QUALITY &Spell::EffectLaunchQuestChoice, //205 SPELL_EFFECT_LAUNCH_QUEST_CHOICE @@ -349,7 +349,7 @@ NonDefaultConstructible<pEffect> SpellEffects[TOTAL_SPELL_EFFECTS] = &Spell::EffectNULL, //268 SPELL_EFFECT_APPLY_MOUNT_EQUIPMENT &Spell::EffectNULL, //269 SPELL_EFFECT_UPGRADE_ITEM &Spell::EffectNULL, //270 SPELL_EFFECT_270 - &Spell::EffectNULL, //271 SPELL_EFFECT_APPLY_AREA_AURA_PARTY_NONRANDOM + &Spell::EffectApplyAreaAura, //271 SPELL_EFFECT_APPLY_AREA_AURA_PARTY_NONRANDOM }; void Spell::EffectNULL(SpellEffIndex /*effIndex*/) diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index f399fe610a0..cadfeef49c3 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -438,7 +438,8 @@ bool SpellEffectInfo::IsAreaAuraEffect() const Effect == SPELL_EFFECT_APPLY_AREA_AURA_FRIEND || Effect == SPELL_EFFECT_APPLY_AREA_AURA_ENEMY || Effect == SPELL_EFFECT_APPLY_AREA_AURA_PET || - Effect == SPELL_EFFECT_APPLY_AREA_AURA_OWNER) + Effect == SPELL_EFFECT_APPLY_AREA_AURA_OWNER || + Effect == SPELL_EFFECT_APPLY_AREA_AURA_PARTY_NONRANDOM) return true; return false; } @@ -457,7 +458,7 @@ bool SpellEffectInfo::IsFarDestTargetEffect() const bool SpellEffectInfo::IsUnitOwnedAuraEffect() const { - return IsAreaAuraEffect() || Effect == SPELL_EFFECT_APPLY_AURA; + return IsAreaAuraEffect() || Effect == SPELL_EFFECT_APPLY_AURA || Effect == SPELL_EFFECT_APPLY_AURA_ON_PET || Effect == SPELL_EFFECT_202; } int32 SpellEffectInfo::CalcValue(Unit const* caster /*= nullptr*/, int32 const* bp /*= nullptr*/, Unit const* target /*= nullptr*/, float* variance /*= nullptr*/, uint32 castItemId /*= 0*/, int32 itemLevel /*= -1*/) const diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index c0997426960..d0f0096d4f8 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -2766,6 +2766,9 @@ void SpellMgr::LoadSpellInfoCustomAttributes() case SPELL_EFFECT_APPLY_AREA_AURA_ENEMY: case SPELL_EFFECT_APPLY_AREA_AURA_PET: case SPELL_EFFECT_APPLY_AREA_AURA_OWNER: + case SPELL_EFFECT_APPLY_AURA_ON_PET: + case SPELL_EFFECT_202: + case SPELL_EFFECT_APPLY_AREA_AURA_PARTY_NONRANDOM: if (effect->ApplyAuraName == SPELL_AURA_PERIODIC_DAMAGE || effect->ApplyAuraName == SPELL_AURA_PERIODIC_DAMAGE_PERCENT || effect->ApplyAuraName == SPELL_AURA_DUMMY || |