aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorWyrserth <wyrserth@protonmail.com>2019-06-27 22:08:39 +0200
committerGitHub <noreply@github.com>2019-06-27 22:08:39 +0200
commit5dc2dfd60c4ecd243729e86496d926976e383156 (patch)
tree0e930831ede2354c4f98b899698475656cecba2a /src/server/game/Spells/SpellEffects.cpp
parentcf223370f3345a7cfa39f8bfb23835391603f985 (diff)
Core/Spell: fix some issues with taunt spells (#23425)
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index f0f95b22e44..3f01f2bea65 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -3069,7 +3069,18 @@ void Spell::EffectTaunt(SpellEffIndex /*effIndex*/)
// this effect use before aura Taunt apply for prevent taunt already attacking target
// for spell as marked "non effective at already attacking target"
- if (!unitTarget || !unitTarget->CanHaveThreatList())
+ if (!unitTarget || unitTarget->IsTotem())
+ {
+ SendCastResult(SPELL_FAILED_DONT_REPORT);
+ return;
+ }
+
+ // Hand of Reckoning can hit some entities that can't have a threat list (including players' pets)
+ if (m_spellInfo->Id == 62124)
+ if (unitTarget->GetTypeId() != TYPEID_PLAYER && unitTarget->GetTarget() != unitCaster->GetGUID())
+ unitCaster->CastSpell(unitTarget, 67485, true);
+
+ if (!unitTarget->CanHaveThreatList())
{
SendCastResult(SPELL_FAILED_DONT_REPORT);
return;
@@ -3082,10 +3093,6 @@ void Spell::EffectTaunt(SpellEffIndex /*effIndex*/)
return;
}
- // Hand of Reckoning
- if (m_spellInfo->Id == 62124)
- unitCaster->CastSpell(unitTarget, 67485, true);
-
if (!mgr.IsThreatListEmpty())
// Set threat equal to highest threat currently on target
mgr.MatchUnitThreatToHighestThreat(unitCaster);