diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Unit.cpp | 36 | ||||
-rw-r--r-- | src/shared/revision_nr.h | 2 |
2 files changed, 29 insertions, 9 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index fff71e8dced..bc3df2c0468 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8186,14 +8186,34 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM break; } } - - // 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; + // Custom crit by class + switch(spellProto->SpellFamilyName) + { + 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 0fc46b32fd1..67c98f12921 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__ |