diff options
author | ariel- <ariel-@users.noreply.github.com> | 2016-10-04 21:43:45 -0300 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-08-13 12:51:43 +0200 |
commit | cc82951ff07c2b48aec5d73b8ba7db82f8065ded (patch) | |
tree | 66579aec778606fd2d8d9545fde4823ef70f58cd /src | |
parent | 1f8fc55ac9d5b12acc56fa72e4ae61f24b910b0d (diff) |
Core/Spells: add proc cooldown on item equip.
(cherry picked from commit 016b31a1b689b1c2c2d401f4d1709d74b24279fd)
# Conflicts:
# src/server/game/Entities/Player/Player.cpp
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 4ca84251276..e20d1dc1429 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -23636,10 +23636,23 @@ void Player::ApplyEquipCooldown(Item* pItem) if (proto->GetFlags() & ITEM_FLAG_NO_EQUIP_COOLDOWN) return; + std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now(); for (uint8 i = 0; i < proto->Effects.size(); ++i) { ItemEffectEntry const* effectData = proto->Effects[i]; + // apply proc cooldown to equip auras if we have any + if (effectData->Trigger == ITEM_SPELLTRIGGER_ON_EQUIP) + { + SpellProcEntry const* procEntry = sSpellMgr->GetSpellProcEntry(effectData->SpellID); + if (!procEntry) + continue; + + if (Aura* itemAura = GetAura(effectData->SpellID, GetGUID(), pItem->GetGUID())) + itemAura->AddProcCooldown(now + procEntry->Cooldown); + continue; + } + // wrong triggering type if (effectData->Trigger != ITEM_SPELLTRIGGER_ON_USE) continue; |