Core/Players: Fixed nested spell overrides (priest Mind Spike)

This commit is contained in:
Shauren
2024-09-01 11:34:11 +02:00
parent e4d7c85715
commit cdca59ca4d
2 changed files with 10 additions and 3 deletions

View File

@@ -30041,7 +30041,7 @@ SpellInfo const* Player::GetCastSpellInfo(SpellInfo const* spellInfo, TriggerCas
if (overrides != m_overrideSpells.end())
for (uint32 spellId : overrides->second)
if (SpellInfo const* newInfo = sSpellMgr->GetSpellInfo(spellId, GetMap()->GetDifficultyID()))
return Unit::GetCastSpellInfo(newInfo, triggerFlag);
return GetCastSpellInfo(newInfo, triggerFlag);
return Unit::GetCastSpellInfo(spellInfo, triggerFlag);
}

View File

@@ -13871,9 +13871,13 @@ SpellInfo const* Unit::GetCastSpellInfo(SpellInfo const* spellInfo, TriggerCastF
{
if (auraEffect->GetSpellInfo()->HasAttribute(SPELL_ATTR8_IGNORE_SPELLCAST_OVERRIDE_COST))
triggerFlag |= TRIGGERED_IGNORE_POWER_AND_REAGENT_COST;
else
triggerFlag &= ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST;
if (auraEffect->GetSpellInfo()->HasAttribute(SPELL_ATTR11_IGNORE_SPELLCAST_OVERRIDE_SHAPESHIFT_REQUIREMENTS))
triggerFlag |= TRIGGERED_IGNORE_SHAPESHIFT;
else
triggerFlag &= ~TRIGGERED_IGNORE_SHAPESHIFT;
return newInfo;
}
@@ -13884,12 +13888,15 @@ SpellInfo const* Unit::GetCastSpellInfo(SpellInfo const* spellInfo, TriggerCastF
};
if (SpellInfo const* newInfo = findMatchingAuraEffectIn(SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS))
return newInfo;
{
triggerFlag &= ~TRIGGERED_IGNORE_CAST_TIME;
return GetCastSpellInfo(newInfo, triggerFlag);
}
if (SpellInfo const* newInfo = findMatchingAuraEffectIn(SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS_TRIGGERED))
{
triggerFlag |= TRIGGERED_IGNORE_CAST_TIME;
return newInfo;
return GetCastSpellInfo(newInfo, triggerFlag);
}
return spellInfo;