aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2018-01-22 14:02:01 -0300
committerariel- <ariel-@users.noreply.github.com>2018-01-22 14:02:01 -0300
commit590d2518820d45e54a4a31cc554af18c0695bcd0 (patch)
treed52a84e3230f1dc8385b51fa7abc3285e2d06ab0 /src
parent514c847881a9fff504e90f1186a1209c0b8a3674 (diff)
Core/PlayerAI: perform cast checks on auto ranged attack
Closes #19928
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/PlayerAI/PlayerAI.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/server/game/AI/PlayerAI/PlayerAI.cpp b/src/server/game/AI/PlayerAI/PlayerAI.cpp
index 25826b42a50..69a5bc45f1f 100644
--- a/src/server/game/AI/PlayerAI/PlayerAI.cpp
+++ b/src/server/game/AI/PlayerAI/PlayerAI.cpp
@@ -729,7 +729,21 @@ void PlayerAI::DoRangedAttackIfReady()
if (!rangedAttackSpell)
return;
- me->CastSpell(victim, rangedAttackSpell, TRIGGERED_CAST_DIRECTLY);
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(rangedAttackSpell);
+ if (!spellInfo)
+ return;
+
+ Spell* spell = new Spell(me, spellInfo, TRIGGERED_CAST_DIRECTLY);
+ if (spell->CheckPetCast(victim) != SPELL_CAST_OK)
+ {
+ delete spell;
+ return;
+ }
+
+ SpellCastTargets targets;
+ targets.SetUnitTarget(victim);
+ spell->prepare(targets);
+
me->resetAttackTimer(RANGED_ATTACK);
}