void SpellHistory::HandleCooldowns(SpellInfo const* spellInfo, Item const* item, Spell* spell /*= nullptr*/) { if (ConsumeCharge(spellInfo->ChargeCategoryEntry)) return; if (Player* player = _owner->ToPlayer()) { // potions start cooldown until exiting combat if (item && (item->IsPotion() || spellInfo->IsCooldownStartedOnEvent())) { player->SetLastPotionId(item->GetEntry()); return; } } if (spellInfo->IsCooldownStartedOnEvent() || spellInfo->IsPassive() || (spell && spell->IsIgnoringCooldowns())) return; StartCooldown(spellInfo, item ? item->GetEntry() : 0, spell); }
void SpellHistory::HandleCooldowns(SpellInfo const* spellInfo, uint32 itemID, Spell* spell /*= nullptr*/) { if (ConsumeCharge(spellInfo->ChargeCategoryId)) return; if (Player* player = _owner->ToPlayer()) { // potions start cooldown until exiting combat if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(itemID)) { if (itemTemplate->IsPotion() || spellInfo->IsCooldownStartedOnEvent()) { player->SetLastPotionId(itemID); return; } } } if (spellInfo->IsCooldownStartedOnEvent() || spellInfo->IsPassive() || (spell && spell->IsIgnoringCooldowns())) return; StartCooldown(spellInfo, itemID, spell); }