fix (Core/Unit) Apply Capacitor cooldown on trigger proc instead of on stack add (#18189)

fix capacitor cooldown
This commit is contained in:
Tereneckla
2024-01-20 11:51:49 +00:00
committed by GitHub
parent b872f6a8b8
commit 4cfad0ffac

View File

@@ -9253,20 +9253,23 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
break;
}
if (cooldown && GetTypeId() == TYPEID_PLAYER)
if (cooldown && ToPlayer()->HasSpellCooldown(stack_spell_id))
{
if (ToPlayer()->HasSpellCooldown(stack_spell_id))
return false;
ToPlayer()->AddSpellCooldown(stack_spell_id, 0, cooldown);
return false;
}
CastSpell(this, stack_spell_id, true, nullptr, triggeredByAura);
Aura* dummy = GetAura(stack_spell_id);
if (!dummy || dummy->GetStackAmount() < triggerAmount)
{
return false;
}
if (cooldown)
{
ToPlayer()->AddSpellCooldown(stack_spell_id, 0, cooldown);
}
RemoveAurasDueToSpell(stack_spell_id);
CastSpell(victim, trigger_spell_id, true, nullptr, triggeredByAura);
return true;