aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2018-01-22 14:02:01 -0300
committerShauren <shauren.trinity@gmail.com>2021-06-16 19:49:57 +0200
commitb46d899ef16ce15e1f8403be076993545035cddc (patch)
treeff1aac2e51158418a6e6bb1d6a882cf30da0e253 /src
parentdf585571f108b3c44d3db1ab82683151f798cbf7 (diff)
Core/PlayerAI: perform cast checks on auto ranged attack
Closes #19928 (cherry picked from commit 590d2518820d45e54a4a31cc554af18c0695bcd0)
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 be52282a482..edd59878942 100644
--- a/src/server/game/AI/PlayerAI/PlayerAI.cpp
+++ b/src/server/game/AI/PlayerAI/PlayerAI.cpp
@@ -614,7 +614,21 @@ void PlayerAI::DoRangedAttackIfReady()
if (!rangedAttackSpell)
return;
- me->CastSpell(victim, rangedAttackSpell, TRIGGERED_CAST_DIRECTLY);
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(rangedAttackSpell, me->GetMap()->GetDifficultyID());
+ 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);
}