mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Spells: Assign spell effect handles for new apply aura effects
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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*/)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ||
|
||||
|
||||
Reference in New Issue
Block a user