Core/Spells: register and apply individual aura effects on hit handler
Port From (https://github.com/TrinityCore/TrinityCore/commit/c07b9188dfc6f76bd909eea7cb8f5a8263b0e83e)
This commit is contained in:
@@ -705,26 +705,16 @@ namespace Game.Spells
|
|||||||
if (spellAura == null || unitTarget == null)
|
if (spellAura == null || unitTarget == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
spellAura._ApplyEffectForTargets(effectInfo.EffectIndex);
|
// register target/effect on aura
|
||||||
}
|
AuraApplication aurApp = spellAura.GetApplicationOfTarget(unitTarget.GetGUID());
|
||||||
|
if (aurApp == null)
|
||||||
|
aurApp = unitTarget._CreateAuraApplication(spellAura, 1u << (int)effectInfo.EffectIndex);
|
||||||
|
else
|
||||||
|
aurApp.UpdateApplyEffectMask(aurApp.GetEffectsToApply() | 1u << (int)effectInfo.EffectIndex);
|
||||||
|
|
||||||
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraEnemy)]
|
// apply effect on target (skip for reapply)
|
||||||
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraFriend)]
|
if (!aurApp.HasEffect(effectInfo.EffectIndex))
|
||||||
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraOwner)]
|
unitTarget._ApplyAuraEffect(spellAura, effectInfo.EffectIndex);
|
||||||
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraParty)]
|
|
||||||
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraPet)]
|
|
||||||
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraRaid)]
|
|
||||||
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraPartyNonrandom)]
|
|
||||||
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraSummons)]
|
|
||||||
void EffectApplyAreaAura()
|
|
||||||
{
|
|
||||||
if (effectHandleMode != SpellEffectHandleMode.HitTarget)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (spellAura == null || unitTarget == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
spellAura._ApplyEffectForTargets(effectInfo.EffectIndex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[SpellEffectHandler(SpellEffectName.UnlearnSpecialization)]
|
[SpellEffectHandler(SpellEffectName.UnlearnSpecialization)]
|
||||||
|
|||||||
Reference in New Issue
Block a user