aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp13
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;