aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index c4569887abf..a3b8adf85d0 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -7604,7 +7604,7 @@ bool Unit::HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, Sp
player->GetBaseRune(i) != RUNE_BLOOD)
continue;
}
- if (player->GetRuneCooldown(i) != player->GetRuneBaseCooldown(i))
+ if (player->GetRuneCooldown(i) != (player->GetRuneBaseCooldown(i) - player->GetLastRuneGraceTimer(i)))
continue;
--runesLeft;
@@ -11760,6 +11760,16 @@ void Unit::ClearInCombat()
m_CombatTimer = 0;
RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ // Reset rune flags after combat
+ if (GetTypeId() == TYPEID_PLAYER && getClass() == CLASS_DEATH_KNIGHT)
+ {
+ for (uint8 i = 0; i < MAX_RUNES; ++i)
+ {
+ ToPlayer()->SetRuneTimer(i, 0xFFFFFFFF);
+ ToPlayer()->SetLastRuneGraceTimer(i, 0);
+ }
+ }
+
// Player's state will be cleared in Player::UpdateContestedPvP
if (Creature* creature = ToCreature())
{