From 2c17ba41f1f4b49abe4d65fe39f756aa050b784b Mon Sep 17 00:00:00 2001 From: Splinter Date: Wed, 2 Dec 2009 23:30:18 +0300 Subject: [PATCH] [8906] Implement 64127 and ranks in part of additional dispel. Signed-off-by: VladimirMangos --- src/game/SpellAuras.cpp | 42 ++++++++++++++++++++++++++++++++++------ src/shared/revision_nr.h | 2 +- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 9a6505334..b0efd81e1 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -5812,17 +5812,47 @@ void Aura::HandleSpellSpecificBoosts(bool apply) (*i)->GetSpellProto()->Mechanic == MECHANIC_BLEED) return; - spellId1 = 30069; - spellId2 = 30070; + spellId1 = 30069; // Blood Frenzy (Rank 1) + spellId2 = 30070; // Blood Frenzy (Rank 2) } break; } case SPELLFAMILY_PRIEST: - // Dispersion mana reg and immunity - if (GetSpellProto()->Id == 47585) + switch(GetId()) { - spellId1 = 60069; - spellId2 = 63230; + // Dispersion mana reg and immunity + case 47585: + spellId1 = 60069; // Dispersion + spellId2 = 63230; // Dispersion + break; + // Abolish Disease (remove 1 more poison effect with Body and Soul) + case 552: + { + if(apply) + { + int chance =0; + Unit::AuraList const& dummyAuras = m_target->GetAurasByType(SPELL_AURA_DUMMY); + for(Unit::AuraList::const_iterator itr = dummyAuras.begin(); itr != dummyAuras.end(); ++itr) + { + SpellEntry const* dummyEntry = (*itr)->GetSpellProto(); + // Body and Soul (talent ranks) + if (dummyEntry->SpellFamilyName == SPELLFAMILY_PRIEST && dummyEntry->SpellIconID == 2218 && + dummyEntry->SpellVisual[0]==0) + { + chance = (*itr)->GetSpellProto()->CalculateSimpleValue(1); + break; + } + } + + if(roll_chance_i(chance)) + spellId1 = 64134; // Body and Soul (periodic dispel effect) + } + else + spellId1 = 64134; // Body and Soul (periodic dispel effect) + break; + } + default: + return; } break; case SPELLFAMILY_ROGUE: diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 236edc0ba..37e174755 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 "8905" + #define REVISION_NR "8906" #endif // __REVISION_NR_H__