From 0464e90853b70fd7ebbd77937c384e80b407492e Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Fri, 20 Mar 2026 09:40:55 -0500 Subject: [PATCH] fix(Core/Player): Fix potion cooldown not ticking after combat ends (#25135) Co-authored-by: blinkysc Co-authored-by: Treeston --- src/server/game/Entities/Player/Player.h | 1 + src/server/game/Entities/Player/PlayerUpdates.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 32c191702..7d1ad43d6 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1826,6 +1826,7 @@ public: uint32 GetLastPotionId() { return m_lastPotionId; } void SetLastPotionId(uint32 item_id) { m_lastPotionId = item_id; } void UpdatePotionCooldown(Spell* spell = nullptr); + void AtExitCombat() override; void setResurrectRequestData(ObjectGuid guid, uint32 mapId, float X, float Y, float Z, uint32 health, uint32 mana) { diff --git a/src/server/game/Entities/Player/PlayerUpdates.cpp b/src/server/game/Entities/Player/PlayerUpdates.cpp index 504ff8fcf..b276e461d 100644 --- a/src/server/game/Entities/Player/PlayerUpdates.cpp +++ b/src/server/game/Entities/Player/PlayerUpdates.cpp @@ -1545,6 +1545,16 @@ void Player::UpdatePvP(bool state, bool _override) sScriptMgr->OnPlayerPVPFlagChange(this, state); } +void Player::AtExitCombat() +{ + Unit::AtExitCombat(); + UpdatePotionCooldown(); + + if (IsClass(CLASS_DEATH_KNIGHT, CLASS_CONTEXT_ABILITY)) + for (uint8 i = 0; i < MAX_RUNES; ++i) + SetGracePeriod(i, 0); +} + void Player::UpdatePotionCooldown(Spell* spell) { // no potion used i combat or still in combat