diff options
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index da76612bec7..8fb5d008c66 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -496,6 +496,21 @@ void Unit::RemoveSpellsCausingAuraWithDispel(AuraType auraType, Spell * spell) return; } } + + std::deque <Aura *> dispel_list; + + AuraList const& dispelAuras = GetAurasByType(auraType); + for(AuraList::const_iterator itr = dispelAuras.begin(); itr != dispelAuras.end(); ++itr) + { + if (!(*iter)->GetDispelChance( spell)) + continue; + dispel_list.push_back(*iter); + } + for(;!dispel_list.empty();) + { + RemoveAurasDueToSpell(dispel_list.front()->GetId()); + dispel_list.pop_front(); + } } void Unit::RemoveAurasWithInterruptFlags(uint32 flag, uint32 except) @@ -5547,6 +5562,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu return false; basepoints0 = triggerAmount * GetMaxHealth() / 100; triggered_spell_id = 34299; + break; } // Healing Touch (Dreamwalker Raiment set) case 28719: @@ -5650,6 +5666,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu { triggered_spell_id = 60889; basepoints0 = triggerAmount * GetMaxPower(POWER_MANA) / 100; + break; } break; } @@ -5769,6 +5786,15 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu basepoints0 = GetAttackTime(BASE_ATTACK) * int32(ap*0.022f + 0.044f * holy) / 1000; break; } + // Sanctified Wrath + if (dummySpell->SpellIconID == 3029) + { + triggered_spell_id = 57318; + target = this; + basepoints0 = triggerAmount; + CastCustomSpell(target,triggered_spell_id,&basepoints0,&basepoints0,NULL,true,castItem,triggeredByAura); + return true; + } // Sacred Shield if (dummySpell->SpellFamilyFlags[1]&0x00080000) { |