aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp26
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)
{