aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorGildor <gildor55@gmail.com>2024-06-27 20:12:16 +0200
committerShauren <shauren.trinity@gmail.com>2024-12-08 18:42:57 +0100
commit752ea0f8e9a04abd53a3b811de2fbb91b689e69f (patch)
treea0b7953a0cce2eb71305798bf56ad77fea4a5976 /src/server/game/Entities
parent4e89a302fcce7644bcd8cf239edad3b409950438 (diff)
Core/Players: Improve reset spell cooldowns when entering arenas (#30032)
Co-authored-by: Shauren <shauren.trinity@gmail.com> (cherry picked from commit 97b19a54457d6239a8e57f61281bda1cd16b8984)
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Player/Player.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 7ec14e6ac99..1ba57638285 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -3493,8 +3493,11 @@ void Player::RemoveArenaSpellCooldowns(bool removeActivePetCooldowns)
GetSpellHistory()->ResetCooldowns([](SpellHistory::CooldownStorageType::iterator itr)
{
SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(itr->first, DIFFICULTY_NONE);
- return spellInfo->RecoveryTime < 10 * MINUTE * IN_MILLISECONDS
- && spellInfo->CategoryRecoveryTime < 10 * MINUTE * IN_MILLISECONDS
+ SpellHistory::Duration cooldown = 0s;
+ SpellHistory::Duration categoryCooldown = 0s;
+ SpellHistory::GetCooldownDurations(spellInfo, itr->second.ItemId, &cooldown, nullptr, &categoryCooldown);
+ return cooldown < 10min
+ && categoryCooldown < 10min
&& !spellInfo->HasAttribute(SPELL_ATTR6_DO_NOT_RESET_COOLDOWN_IN_ARENA);
}, true);