diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index f0dd5173286..a5eb978ede0 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -10689,6 +10689,11 @@ void Unit::ProcSkillsAndReactives(bool isVictim, Unit* procTarget, uint32 typeMa // for victim if (isVictim) { + // Skip checks for Death Knights when in Blood Presence (Rune Strike) + if (getClass() == CLASS_DEATH_KNIGHT && hitMask & (PROC_HIT_DODGE | PROC_HIT_PARRY | PROC_HIT_BLOCK)) + if (GetAuraEffect(SPELL_AURA_MOD_BASE_RESISTANCE_PCT, SPELLFAMILY_DEATHKNIGHT, 0x800000, 0, 0, GetGUID())) + return; + // if victim and dodge attack if (hitMask & PROC_HIT_DODGE) { diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index fe0bbda0b12..b174578bddd 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -794,6 +794,9 @@ class spell_dk_presence : public AuraScript // Improved Blood Presence and Blood Presence triggered effect if (spellId == SPELL_DK_BLOOD_PRESENCE) { + // Apply defense state to permanently enable Rune Strike + target->ModifyAuraState(AURA_STATE_DEFENSE, true); + if (Aura const* improvedBloodPresenceAura = target->GetAuraOfRankedSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_R1, target->GetGUID())) { // Rune Regeneration bonus effect @@ -823,6 +826,9 @@ class spell_dk_presence : public AuraScript target->RemoveAura(SPELL_DK_IMPROVED_FROST_PRESENCE); target->RemoveAura(SPELL_DK_IMPROVED_UNHOLY_PRESENCE); target->RemoveAura(SPELL_DK_IMPROVED_BLOOD_PRESENCE); + + if (GetId() == SPELL_DK_BLOOD_PRESENCE) + target->ModifyAuraState(AURA_STATE_DEFENSE, false); } void Register() override