diff options
| author | Morgoporc <j.fraisse45@laposte.net> | 2014-09-22 01:05:13 +0100 |
|---|---|---|
| committer | DDuarte <dnpd.dd@gmail.com> | 2014-09-22 01:05:13 +0100 |
| commit | ec59c3ab0377f4077a2d63e7b242f2a3693dd2d4 (patch) | |
| tree | 0238645a8170d8f6141eee7ec5284620a15f9487 /src/server/game/Entities/Unit | |
| parent | 84efd8b92bec4af04263eb7b86a598572164a20b (diff) | |
Core/Players/DK: Implement Rune Grace Period mechanic
Closes #11736
Fixes #6122
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 12 |
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()) { |
