aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellMgr.cpp
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2018-03-01 20:38:07 -0300
committerShauren <shauren.trinity@gmail.com>2021-08-18 22:57:52 +0200
commit6c642f33b58ce81eb5b1345a7f0eb89de6040251 (patch)
tree3b5948b7236ca656c39418662405ffdf118f4d46 /src/server/game/Spells/SpellMgr.cpp
parentb9ffac3afa485bff66265a3703604d15c78228d1 (diff)
Core/Auras: added sanity checks for area auras having a different owner unit than caster
Closes #21517 (cherry picked from commit 54e841888621ce2ea6fbfde2f86842ec088cd575)
Diffstat (limited to 'src/server/game/Spells/SpellMgr.cpp')
-rw-r--r--src/server/game/Spells/SpellMgr.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 8422ff6360c..d07cd6a54cb 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -4541,6 +4541,13 @@ void SpellMgr::LoadSpellInfoCorrections()
if (effect->TargetA.GetSelectionCategory() == TARGET_SELECT_CATEGORY_CONE || effect->TargetB.GetSelectionCategory() == TARGET_SELECT_CATEGORY_CONE)
if (G3D::fuzzyEq(spellInfo->ConeAngle, 0.f))
spellInfo->ConeAngle = 90.f;
+
+ // Area auras may not target area (they're self cast)
+ if (effect->IsAreaAuraEffect() && effect->IsTargetingArea())
+ {
+ const_cast<SpellEffectInfo*>(effect)->TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER);
+ const_cast<SpellEffectInfo*>(effect)->TargetB = SpellImplicitTargetInfo(0);
+ }
}
// disable proc for magnet auras, they're handled differently