aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Spells/SpellScript.cpp9
-rw-r--r--src/server/game/Spells/SpellScript.h2
2 files changed, 4 insertions, 7 deletions
diff --git a/src/server/game/Spells/SpellScript.cpp b/src/server/game/Spells/SpellScript.cpp
index f8eb76085ab..d541c5f0a46 100644
--- a/src/server/game/Spells/SpellScript.cpp
+++ b/src/server/game/Spells/SpellScript.cpp
@@ -623,17 +623,14 @@ bool SpellScript::IsHitCrit() const
}
if (Unit* hitUnit = GetHitUnit())
{
- auto itr = std::find_if(m_spell->m_UniqueTargetInfo.begin(), m_spell->m_UniqueTargetInfo.end(), [hitUnit](Spell::TargetInfo const& targetInfo)
- {
- return targetInfo.TargetGUID == hitUnit->GetGUID();
- });
+ auto itr = std::ranges::find(m_spell->m_UniqueTargetInfo, hitUnit->GetGUID(), &Spell::TargetInfo::TargetGUID);
ASSERT(itr != m_spell->m_UniqueTargetInfo.end());
return itr->IsCrit;
}
return false;
}
-Aura* SpellScript::GetHitAura(bool dynObjAura /*= false*/) const
+Aura* SpellScript::GetHitAura(bool dynObjAura /*= false*/, bool withRemoved /*= false*/) const
{
if (!IsInTargetHook())
{
@@ -645,7 +642,7 @@ Aura* SpellScript::GetHitAura(bool dynObjAura /*= false*/) const
if (dynObjAura)
aura = m_spell->_dynObjAura;
- if (!aura || aura->IsRemoved())
+ if (!aura || (aura->IsRemoved() && !withRemoved))
return nullptr;
return aura;
diff --git a/src/server/game/Spells/SpellScript.h b/src/server/game/Spells/SpellScript.h
index ee962a29ec6..22b54191244 100644
--- a/src/server/game/Spells/SpellScript.h
+++ b/src/server/game/Spells/SpellScript.h
@@ -1044,7 +1044,7 @@ public:
bool IsHitCrit() const;
Spell* GetSpell() const { return m_spell; }
// returns current spell hit target aura
- Aura* GetHitAura(bool dynObjAura = false) const;
+ Aura* GetHitAura(bool dynObjAura = false, bool withRemoved = false) const;
// prevents applying aura on current spell hit target
void PreventHitAura();