diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index b78ca11da..6788079c2 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -7764,14 +7764,34 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM break; } } - - // Sacred Shield - if (spellProto->SpellFamilyName == SPELLFAMILY_PALADIN && - spellProto->SpellFamilyFlags & 0x0000000040000000LL) + // Custom crit by class + switch(spellProto->SpellFamilyName) { - Aura *aura = pVictim->GetDummyAura(58597); - if (aura && aura->GetCasterGUID() == GetGUID()) - crit_chance+=aura->GetModifier()->m_amount; + case SPELLFAMILY_PALADIN: + // Sacred Shield + if (spellProto->SpellFamilyFlags & 0x0000000040000000LL) + { + Aura *aura = pVictim->GetDummyAura(58597); + if (aura && aura->GetCasterGUID() == GetGUID()) + crit_chance+=aura->GetModifier()->m_amount; + break; + } + break; + case SPELLFAMILY_SHAMAN: + // Lava Burst + if (spellProto->SpellFamilyFlags & 0x0000100000000000LL) + { + if (Aura *flameShock = pVictim->GetAura(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_SHAMAN, 0x0000000010000000LL, 0, GetGUID())) + { + // Consume shock aura if not have Glyph of Flame Shock + if (!GetAura(55447, 0)) + pVictim->RemoveAurasByCasterSpell(flameShock->GetId(), GetGUID()); + return true; + } + break; + } + break; + } } break; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 0fc46b32f..67c98f129 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7209" + #define REVISION_NR "7210" #endif // __REVISION_NR_H__