fix(Core/Spells): several improvements to cooldowns (#7559)

- Reworked spell category cooldowns.
- Implemented category cooldowns for pets.
- Properly shows pet spell cooldowns in player's UI.
- Corrected pet spell cooldowns with infinity duration.
- Do not add/remove infinity spell cooldown on aura apply/remove if casted by item.
- Closes #5263
This commit is contained in:
UltraNix
2021-09-13 20:57:48 +02:00
committed by GitHub
parent 7e2e6f8ee8
commit 7406a01ac3
19 changed files with 178 additions and 111 deletions

View File

@@ -547,7 +547,15 @@ void WorldSession::HandlePetCancelAuraOpcode(WorldPacket& recvPacket)
pet->RemoveOwnedAura(spellId, ObjectGuid::Empty, 0, AURA_REMOVE_BY_CANCEL);
pet->AddSpellCooldown(spellId, 0, 0);
if (spellInfo->IsCooldownStartedOnEvent())
{
pet->AddSpellCooldown(spellId, 0, 0);
WorldPacket data(SMSG_COOLDOWN_EVENT, 4 + 8);
data << uint32(spellInfo->Id);
data << pet->GetGUID();
_player->SendDirectMessage(&data);
}
}
void WorldSession::HandleCancelGrowthAuraOpcode(WorldPacket& /*recvPacket*/)