mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 15:40:45 +01:00
Core/Spells: Implemented SpellAuraInterruptFlags2::ReleaseEmpower
This commit is contained in:
@@ -4347,7 +4347,7 @@ void Spell::update(uint32 difftime)
|
||||
|
||||
if (IsEmpowerSpell())
|
||||
{
|
||||
auto getCompletedEmpowerStages = [&]() -> int32
|
||||
int32 completedStages = [&]() -> int32
|
||||
{
|
||||
Milliseconds passed(m_channeledDuration - m_timer);
|
||||
for (std::size_t i = 0; i < m_empower->StageDurations.size(); ++i)
|
||||
@@ -4358,9 +4358,8 @@ void Spell::update(uint32 difftime)
|
||||
}
|
||||
|
||||
return m_empower->StageDurations.size();
|
||||
};
|
||||
}();
|
||||
|
||||
int32 completedStages = getCompletedEmpowerStages();
|
||||
if (completedStages != m_empower->CompletedStages)
|
||||
{
|
||||
WorldPackets::Spells::SpellEmpowerSetStage empowerSetStage;
|
||||
@@ -4380,6 +4379,7 @@ void Spell::update(uint32 difftime)
|
||||
m_empower->IsReleased = true;
|
||||
m_timer = 0;
|
||||
CallScriptEmpowerCompletedHandlers(m_empower->CompletedStages);
|
||||
m_caster->ToUnit()->RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::ReleaseEmpower, m_spellInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -143,6 +143,7 @@ enum class SpellAuraInterruptFlags2 : uint32
|
||||
ChallengeModeStart = 0x00400000, // Implemented in Unit::AtStartOfEncounter
|
||||
StartOfEncounter = 0x00800000, // Implemented in Unit::AtStartOfEncounter
|
||||
EndOfEncounter = 0x01000000, // Implemented in Unit::AtEndOfEncounter
|
||||
ReleaseEmpower = 0x02000000, // Implemented in Spell::update
|
||||
};
|
||||
|
||||
DEFINE_ENUM_FLAG(SpellAuraInterruptFlags2);
|
||||
|
||||
Reference in New Issue
Block a user