Core/Auras: Implement SPELL_AURA_INTERFERE_ALL_TARGETING (SPELL_AURA_486)

Port From (https://github.com/TrinityCore/TrinityCore/commit/5fad0fb43af8498c1ae6d4bc79f47fe318d391c8)
This commit is contained in:
Hondacrx
2025-12-08 10:25:40 -05:00
parent 06bb95cb6d
commit b267c12273
2 changed files with 14 additions and 6 deletions
@@ -329,7 +329,7 @@ namespace Framework.Constants
ModMeleeHaste3 = 319, ModMeleeHaste3 = 319,
Unk320 = 320, Unk320 = 320,
ModNoActions = 321, ModNoActions = 321,
InterfereTargetting = 322, InterfereEnemyTargeting = 322,
Unk323 = 323, // Not Used In 4.3.4 Unk323 = 323, // Not Used In 4.3.4
OverrideUnlockedAzeriteEssenceRank = 324, // testing aura OverrideUnlockedAzeriteEssenceRank = 324, // testing aura
LearnPvpTalent = 325, // NYI LearnPvpTalent = 325, // NYI
@@ -493,7 +493,7 @@ namespace Framework.Constants
SuppressTransforms = 483, // NYI SuppressTransforms = 483, // NYI
AllowInterruptSpell = 484, // NYI AllowInterruptSpell = 484, // NYI
ModMovementForceMagnitude = 485, ModMovementForceMagnitude = 485,
Unk486 = 486, InterfereAllTargeting = 486,
CosmeticMounted = 487, CosmeticMounted = 487,
DisableGravity = 488, DisableGravity = 488,
ModAlternativeDefaultLanguage = 489, // NYI ModAlternativeDefaultLanguage = 489, // NYI
+12 -4
View File
@@ -5239,18 +5239,26 @@ namespace Game.Spells
if (castResult != SpellCastResult.SpellCastOk) if (castResult != SpellCastResult.SpellCastOk)
return castResult; return castResult;
// If it's not a melee spell, check if vision is obscured by SPELL_AURA_INTERFERE_TARGETTING // If it's not a melee spell, check if vision is obscured by SPELL_AURA_INTERFERE_ENEMY_TARGETING
if (m_spellInfo.DmgClass != SpellDmgClass.Melee) if (m_spellInfo.DmgClass != SpellDmgClass.Melee)
{ {
Unit unitCaster1 = m_caster.ToUnit(); Unit unitCaster1 = m_caster.ToUnit();
if (unitCaster1 != null) if (unitCaster1 != null)
{ {
foreach (var auraEffect in unitCaster1.GetAuraEffectsByType(AuraType.InterfereTargetting)) foreach (var auraEffect in unitCaster1.GetAuraEffectsByType(AuraType.InterfereEnemyTargeting))
if (!unitCaster1.IsFriendlyTo(auraEffect.GetCaster()) && !unitTarget.HasAura(auraEffect.GetId(), auraEffect.GetCasterGUID())) if (!unitCaster1.IsFriendlyTo(auraEffect.GetCaster()) && !unitTarget.HasAura(auraEffect.GetId(), auraEffect.GetCasterGUID()))
return SpellCastResult.VisionObscured; return SpellCastResult.VisionObscured;
foreach (var auraEffect in unitTarget.GetAuraEffectsByType(AuraType.InterfereTargetting)) foreach (AuraEffect auraEff in unitTarget.GetAuraEffectsByType(AuraType.InterfereEnemyTargeting))
if (!unitCaster1.IsFriendlyTo(auraEffect.GetCaster()) && (!unitTarget.HasAura(auraEffect.GetId(), auraEffect.GetCasterGUID()) || !unitCaster1.HasAura(auraEffect.GetId(), auraEffect.GetCasterGUID()))) if (!unitCaster.IsFriendlyTo(auraEff.GetCaster()) && !unitCaster.HasAura(auraEff.GetId(), auraEff.GetCasterGUID()))
return SpellCastResult.VisionObscured;
foreach (AuraEffect auraEff in unitCaster.GetAuraEffectsByType(AuraType.InterfereAllTargeting))
if (!unitTarget.HasAura(auraEff.GetId(), auraEff.GetCasterGUID()))
return SpellCastResult.VisionObscured;
foreach (AuraEffect auraEff in unitTarget.GetAuraEffectsByType(AuraType.InterfereAllTargeting))
if (!unitCaster.HasAura(auraEff.GetId(), auraEff.GetCasterGUID()))
return SpellCastResult.VisionObscured; return SpellCastResult.VisionObscured;
} }
} }