From f8047e9da006f6d159b8fc37aefb995ff5e1ab43 Mon Sep 17 00:00:00 2001 From: Shendor Date: Fri, 25 Sep 2009 20:19:03 +0300 Subject: [PATCH] [8537] Implement SPELL_AURA_MOD_CRIT_CHANCE for spell 31858 Signed-off-by: Ambal --- src/game/SpellAuraDefines.h | 2 +- src/game/SpellAuras.cpp | 8 +++++++- src/game/SpellAuras.h | 1 + src/game/StatSystem.cpp | 2 ++ src/shared/revision_nr.h | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/game/SpellAuraDefines.h b/src/game/SpellAuraDefines.h index 9254468ca..602a3050b 100644 --- a/src/game/SpellAuraDefines.h +++ b/src/game/SpellAuraDefines.h @@ -332,7 +332,7 @@ enum AuraType SPELL_AURA_DEFLECT_SPELLS, SPELL_AURA_288, SPELL_AURA_289, - SPELL_AURA_290, + SPELL_AURA_MOD_ALL_CRIT_CHANCE, SPELL_AURA_291, SPELL_AURA_292, SPELL_AURA_293, diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 42e88b83f..3d00d08c9 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -340,7 +340,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &Aura::HandleNoImmediateEffect, //287 SPELL_AURA_DEFLECT_SPELLS implemented in Unit::MagicSpellHitResult and Unit::MeleeSpellHitResult &Aura::HandleUnused, //288 not used by any spells (3.09) except 1 test spell. &Aura::HandleUnused, //289 unused - &Aura::HandleUnused, //290 unused + &Aura::HandleAuraModAllCritChance, //290 SPELL_AURA_MOD_ALL_CRIT_CHANCE &Aura::HandleUnused, //291 unused &Aura::HandleNULL, //292 call stabled pet &Aura::HandleNULL, //293 2 test spells @@ -7405,3 +7405,9 @@ void Aura::HandleModTargetArmorPct(bool apply, bool Real) ((Player*)m_target)->UpdateArmorPenetration(); } + +void Aura::HandleAuraModAllCritChance(bool apply, bool Real) +{ + this->HandleAuraModCritPercent(apply, Real); + this->HandleModSpellCritChance(apply, Real); +} diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h index 053d24547..397338227 100644 --- a/src/game/SpellAuras.h +++ b/src/game/SpellAuras.h @@ -212,6 +212,7 @@ class MANGOS_DLL_SPEC Aura void HandleNoReagentUseAura(bool Apply, bool Real); void HandlePhase(bool Apply, bool Real); void HandleModTargetArmorPct(bool Apply, bool Real); + void HandleAuraModAllCritChance(bool Apply, bool Real); virtual ~Aura(); diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index c305e9e74..32dc01b1d 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -586,6 +586,8 @@ void Player::UpdateSpellCritChance(uint32 school) crit += GetSpellCritFromIntellect(); // Increase crit from SPELL_AURA_MOD_SPELL_CRIT_CHANCE crit += GetTotalAuraModifier(SPELL_AURA_MOD_SPELL_CRIT_CHANCE); + // Increase crit from SPELL_AURA_MOD_ALL_CRIT_CHANCE + crit += GetTotalAuraModifier(SPELL_AURA_MOD_ALL_CRIT_CHANCE); // Increase crit by school from SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL crit += GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, 1<