@@ -748,7 +748,7 @@ void Spell::SelectSpellTargets()
748748 {
749749 if (m_spellInfo->HasAttribute (SPELL_ATTR1_REQUIRE_ALL_TARGETS))
750750 {
751- bool noTargetFound = std::none_of (m_UniqueTargetInfo. begin (), m_UniqueTargetInfo. end () , [effectMask = 1u << spellEffectInfo.EffectIndex ](TargetInfo const & target)
751+ bool noTargetFound = std::ranges:: none_of (m_UniqueTargetInfo, [effectMask = 1u << spellEffectInfo.EffectIndex ](TargetInfo const & target)
752752 {
753753 return target.EffectMask & effectMask;
754754 });
@@ -760,20 +760,6 @@ void Spell::SelectSpellTargets()
760760 return ;
761761 }
762762 }
763- if (m_spellInfo->HasAttribute (SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE))
764- {
765- bool anyNonImmuneTargetFound = std::any_of (m_UniqueTargetInfo.begin (), m_UniqueTargetInfo.end (), [effectMask = 1u << spellEffectInfo.EffectIndex ](TargetInfo const & target)
766- {
767- return target.EffectMask & effectMask && target.MissCondition != SPELL_MISS_IMMUNE && target.MissCondition != SPELL_MISS_IMMUNE2;
768- });
769-
770- if (!anyNonImmuneTargetFound)
771- {
772- SendCastResult (SPELL_FAILED_IMMUNE);
773- finish (SPELL_FAILED_IMMUNE);
774- return ;
775- }
776- }
777763 }
778764
779765 if (m_spellInfo->IsChanneled ())
@@ -798,6 +784,21 @@ void Spell::SelectSpellTargets()
798784 }
799785 }
800786
787+ if (m_spellInfo->HasAttribute (SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE))
788+ {
789+ bool anyNonImmuneTargetFound = std::ranges::any_of (m_UniqueTargetInfo, [](TargetInfo const & target)
790+ {
791+ return target.MissCondition != SPELL_MISS_IMMUNE && target.MissCondition != SPELL_MISS_IMMUNE2;
792+ });
793+
794+ if (!anyNonImmuneTargetFound)
795+ {
796+ SendCastResult (SPELL_FAILED_IMMUNE);
797+ finish (SPELL_FAILED_IMMUNE);
798+ return ;
799+ }
800+ }
801+
801802 if (m_targets.HasDst ())
802803 {
803804 if (m_spellInfo->HasAttribute (SPELL_ATTR8_REQUIRES_LOCATION_TO_BE_ON_LIQUID_SURFACE))
0 commit comments