diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index c46050999..726e7d776 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5220,7 +5220,13 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu basepoints0 = GetAttackTime(BASE_ATTACK) * int32(ap*0.022f + 0.044f * holy) / 1000; break; } - + // Sacred Shield + if (dummySpell->SpellFamilyFlags&0x0008000000000000LL) + { + triggered_spell_id = 58597; + target = this; + break; + } switch(dummySpell->Id) { // Judgement of Light @@ -7608,7 +7614,7 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM } // Glyph of Shadowburn if (spellProto->SpellFamilyName == SPELLFAMILY_WARLOCK && - spellProto->SpellFamilyFlags & 0x0000000000000080 && + spellProto->SpellFamilyFlags & 0x0000000000000080LL && pVictim->HasAuraState(AURA_STATE_HEALTHLESS_35_PERCENT)) { AuraList const& mOverrideClassScript = GetAurasByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); @@ -7616,6 +7622,14 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM if((*i)->GetModifier()->m_miscvalue == 7917) crit_chance+=(*i)->GetModifier()->m_amount; } + // Sacred Shield + if (spellProto->SpellFamilyName == SPELLFAMILY_PALADIN && + spellProto->SpellFamilyFlags & 0x0000000040000000LL) + { + Aura *aura = pVictim->GetDummyAura(58597); + if (aura && aura->GetCasterGUID() == GetGUID()) + crit_chance+=aura->GetModifier()->m_amount; + } } break; }