mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-13 03:32:28 -04:00
Core/Scripts: Expose Spell::GetUnitTargetIndexForEffect in scripts
This commit is contained in:
@@ -2657,18 +2657,18 @@ int32 Spell::GetUnitTargetIndexForEffect(ObjectGuid const& target, SpellEffIndex
|
||||
if (uniqueTargetInfo.MissCondition == SPELL_MISS_NONE && uniqueTargetInfo.EffectMask & (1 << effect))
|
||||
{
|
||||
if (uniqueTargetInfo.TargetGUID == target)
|
||||
break;
|
||||
return index;
|
||||
|
||||
++index;
|
||||
}
|
||||
}
|
||||
|
||||
return index;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int64 Spell::GetUnitTargetCountForEffect(SpellEffIndex effect) const
|
||||
{
|
||||
return std::count_if(m_UniqueTargetInfo.begin(), m_UniqueTargetInfo.end(), [effect](TargetInfo const& targetInfo)
|
||||
return std::ranges::count_if(m_UniqueTargetInfo, [effect](TargetInfo const& targetInfo)
|
||||
{
|
||||
return targetInfo.MissCondition == SPELL_MISS_NONE && targetInfo.EffectMask & (1 << effect);
|
||||
});
|
||||
@@ -2676,7 +2676,7 @@ int64 Spell::GetUnitTargetCountForEffect(SpellEffIndex effect) const
|
||||
|
||||
int64 Spell::GetGameObjectTargetCountForEffect(SpellEffIndex effect) const
|
||||
{
|
||||
return std::count_if(m_UniqueGOTargetInfo.begin(), m_UniqueGOTargetInfo.end(), [effect](GOTargetInfo const& targetInfo)
|
||||
return std::ranges::count_if(m_UniqueGOTargetInfo, [effect](GOTargetInfo const& targetInfo)
|
||||
{
|
||||
return targetInfo.EffectMask & (1 << effect);
|
||||
});
|
||||
@@ -2684,7 +2684,7 @@ int64 Spell::GetGameObjectTargetCountForEffect(SpellEffIndex effect) const
|
||||
|
||||
int64 Spell::GetItemTargetCountForEffect(SpellEffIndex effect) const
|
||||
{
|
||||
return std::count_if(m_UniqueItemInfo.begin(), m_UniqueItemInfo.end(), [effect](ItemTargetInfo const& targetInfo)
|
||||
return std::ranges::count_if(m_UniqueItemInfo, [effect](ItemTargetInfo const& targetInfo)
|
||||
{
|
||||
return targetInfo.EffectMask & (1 << effect);
|
||||
});
|
||||
@@ -2692,7 +2692,7 @@ int64 Spell::GetItemTargetCountForEffect(SpellEffIndex effect) const
|
||||
|
||||
int64 Spell::GetCorpseTargetCountForEffect(SpellEffIndex effect) const
|
||||
{
|
||||
return std::count_if(m_UniqueCorpseTargetInfo.begin(), m_UniqueCorpseTargetInfo.end(), [effect](CorpseTargetInfo const& targetInfo)
|
||||
return std::ranges::count_if(m_UniqueCorpseTargetInfo, [effect](CorpseTargetInfo const& targetInfo)
|
||||
{
|
||||
return targetInfo.EffectMask & (1 << effect);
|
||||
});
|
||||
|
||||
@@ -486,6 +486,17 @@ int64 SpellScript::GetUnitTargetCountForEffect(SpellEffIndex effect) const
|
||||
return m_spell->GetUnitTargetCountForEffect(effect);
|
||||
}
|
||||
|
||||
int32 SpellScript::GetUnitTargetIndexForEffect(ObjectGuid const& target, SpellEffIndex effect) const
|
||||
{
|
||||
if (!IsAfterTargetSelectionPhase())
|
||||
{
|
||||
TC_LOG_ERROR("scripts", "Script: `{}` Spell: `{}`: function SpellScript::GetUnitTargetIndexForEffect was called, but function has no effect in current hook! (spell has not selected targets yet)",
|
||||
m_scriptName, m_scriptSpellId);
|
||||
return 0;
|
||||
}
|
||||
return m_spell->GetUnitTargetIndexForEffect(target, effect);
|
||||
}
|
||||
|
||||
int64 SpellScript::GetGameObjectTargetCountForEffect(SpellEffIndex effect) const
|
||||
{
|
||||
if (!IsAfterTargetSelectionPhase())
|
||||
|
||||
@@ -889,6 +889,7 @@ public:
|
||||
|
||||
// methods usable only after spell targets have been fully selected
|
||||
int64 GetUnitTargetCountForEffect(SpellEffIndex effect) const;
|
||||
int32 GetUnitTargetIndexForEffect(ObjectGuid const& target, SpellEffIndex effect) const;
|
||||
int64 GetGameObjectTargetCountForEffect(SpellEffIndex effect) const;
|
||||
int64 GetItemTargetCountForEffect(SpellEffIndex effect) const;
|
||||
int64 GetCorpseTargetCountForEffect(SpellEffIndex effect) const;
|
||||
|
||||
Reference in New Issue
Block a user