aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Spells/Auras/SpellAuraDefines.h4
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp4
-rw-r--r--src/server/game/Spells/Spell.cpp16
3 files changed, 16 insertions, 8 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h
index 0bd91797019..f9c2201fac4 100644
--- a/src/server/game/Spells/Auras/SpellAuraDefines.h
+++ b/src/server/game/Spells/Auras/SpellAuraDefines.h
@@ -406,7 +406,7 @@ enum AuraType : uint32
SPELL_AURA_MOD_MELEE_HASTE_3 = 319,
SPELL_AURA_320 = 320,
SPELL_AURA_MOD_NO_ACTIONS = 321,
- SPELL_AURA_INTERFERE_TARGETTING = 322,
+ SPELL_AURA_INTERFERE_ENEMY_TARGETING = 322,
SPELL_AURA_323 = 323, // Not used in 4.3.4
SPELL_AURA_OVERRIDE_UNLOCKED_AZERITE_ESSENCE_RANK = 324, // testing aura
SPELL_AURA_LEARN_PVP_TALENT = 325, // NYI
@@ -570,7 +570,7 @@ enum AuraType : uint32
SPELL_AURA_SUPPRESS_TRANSFORMS = 483, // NYI
SPELL_AURA_ALLOW_INTERRUPT_SPELL = 484,
SPELL_AURA_MOD_MOVEMENT_FORCE_MAGNITUDE = 485,
- SPELL_AURA_486 = 486,
+ SPELL_AURA_INTERFERE_ALL_TARGETING = 486,
SPELL_AURA_COSMETIC_MOUNTED = 487,
SPELL_AURA_DISABLE_GRAVITY = 488,
SPELL_AURA_MOD_ALTERNATIVE_DEFAULT_LANGUAGE = 489,
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index ed0e87ddc8f..9cb6d4da85d 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -391,7 +391,7 @@ NonDefaultConstructible<pAuraEffectHandler> AuraEffectHandler[TOTAL_AURAS]=
&AuraEffect::HandleModMeleeSpeedPct, //319 SPELL_AURA_MOD_MELEE_HASTE_3
&AuraEffect::HandleNULL, //320 SPELL_AURA_320
&AuraEffect::HandleAuraModNoActions, //321 SPELL_AURA_MOD_NO_ACTIONS
- &AuraEffect::HandleNoImmediateEffect, //322 SPELL_AURA_INTERFERE_TARGETTING implemented in Spell::CheckCast
+ &AuraEffect::HandleNoImmediateEffect, //322 SPELL_AURA_INTERFERE_ENEMY_TARGETING implemented in Spell::CheckCast
&AuraEffect::HandleUnused, //323 unused (4.3.4)
&AuraEffect::HandleNULL, //324 SPELL_AURA_OVERRIDE_UNLOCKED_AZERITE_ESSENCE_RANK
&AuraEffect::HandleUnused, //325 SPELL_AURA_LEARN_PVP_TALENT
@@ -555,7 +555,7 @@ NonDefaultConstructible<pAuraEffectHandler> AuraEffectHandler[TOTAL_AURAS]=
&AuraEffect::HandleNULL, //483 SPELL_AURA_SUPPRESS_TRANSFORMS
&AuraEffect::HandleNoImmediateEffect, //484 SPELL_AURA_ALLOW_INTERRUPT_SPELL implemented in SpellInfo::CanBeInterrupted
&AuraEffect::HandleModMovementForceMagnitude, //485 SPELL_AURA_MOD_MOVEMENT_FORCE_MAGNITUDE
- &AuraEffect::HandleNULL, //486
+ &AuraEffect::HandleNoImmediateEffect, //486 SPELL_AURA_INTERFERE_ALL_TARGETING implemented in Spell::CheckCast
&AuraEffect::HandleCosmeticMounted, //487 SPELL_AURA_COSMETIC_MOUNTED
&AuraEffect::HandleAuraDisableGravity, //488 SPELL_AURA_DISABLE_GRAVITY
&AuraEffect::HandleModAlternativeDefaultLanguage, //489 SPELL_AURA_MOD_ALTERNATIVE_DEFAULT_LANGUAGE
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index cd4299d8bf6..b4e5711d7f2 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -6039,17 +6039,25 @@ SpellCastResult Spell::CheckCast(bool strict, int32* param1 /*= nullptr*/, int32
if (castResult != SPELL_CAST_OK)
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 != SPELL_DAMAGE_CLASS_MELEE)
{
if (Unit const* unitCaster = m_caster->ToUnit())
{
- for (AuraEffect const* auraEff : unitCaster->GetAuraEffectsByType(SPELL_AURA_INTERFERE_TARGETTING))
+ for (AuraEffect const* auraEff : unitCaster->GetAuraEffectsByType(SPELL_AURA_INTERFERE_ENEMY_TARGETING))
if (!unitCaster->IsFriendlyTo(auraEff->GetCaster()) && !target->HasAura(auraEff->GetId(), auraEff->GetCasterGUID()))
return SPELL_FAILED_VISION_OBSCURED;
- for (AuraEffect const* auraEff : target->GetAuraEffectsByType(SPELL_AURA_INTERFERE_TARGETTING))
- if (!unitCaster->IsFriendlyTo(auraEff->GetCaster()) && (!target->HasAura(auraEff->GetId(), auraEff->GetCasterGUID()) || !unitCaster->HasAura(auraEff->GetId(), auraEff->GetCasterGUID())))
+ for (AuraEffect const* auraEff : target->GetAuraEffectsByType(SPELL_AURA_INTERFERE_ENEMY_TARGETING))
+ if (!unitCaster->IsFriendlyTo(auraEff->GetCaster()) && !unitCaster->HasAura(auraEff->GetId(), auraEff->GetCasterGUID()))
+ return SPELL_FAILED_VISION_OBSCURED;
+
+ for (AuraEffect const* auraEff : unitCaster->GetAuraEffectsByType(SPELL_AURA_INTERFERE_ALL_TARGETING))
+ if (!target->HasAura(auraEff->GetId(), auraEff->GetCasterGUID()))
+ return SPELL_FAILED_VISION_OBSCURED;
+
+ for (AuraEffect const* auraEff : target->GetAuraEffectsByType(SPELL_AURA_INTERFERE_ALL_TARGETING))
+ if (!unitCaster->HasAura(auraEff->GetId(), auraEff->GetCasterGUID()))
return SPELL_FAILED_VISION_OBSCURED;
}
}