aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellAuras.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2009-03-08 01:16:57 +0100
committerQAston <none@none>2009-03-08 01:16:57 +0100
commit63b4a12251345f6bd7c4e85d9acc63ad6ca64cb9 (patch)
tree68f029d11c257bf679de917acae798add5f92c87 /src/game/SpellAuras.cpp
parentbbd030032e7428195d1dc6da36958562fa887a5f (diff)
*Fix Incanter's Absorption.
*Fix Devastate and Improved Fear- by Lightguard. *Fix Glyph of devastate. *Add spell coeficient-by cccyril. --HG-- branch : trunk
Diffstat (limited to 'src/game/SpellAuras.cpp')
-rw-r--r--src/game/SpellAuras.cpp30
1 files changed, 24 insertions, 6 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 012b576d432..75d3b2d431c 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -945,15 +945,18 @@ void Aura::_RemoveAura()
AuraSlotEntry *entry = m_target->GetVisibleAura(slot);
if (entry)
{
- entry->m_slotAuras[GetEffIndex()]=NULL; //unregister aura
- for(uint8 i = 0; i < 3; ++i) //check slot for more auras of the spell
+ // we have more auras, do not clear slot
+ if (entry->m_slotAuras[GetEffIndex()]==this)
{
- if(entry->m_slotAuras[i])
+ entry->m_slotAuras[GetEffIndex()]=NULL; //unregister aura
+ for(uint8 i = 0; i < 3; ++i) //check slot for more auras of the spell
{
- lastaura = false;
- break;
+ if(entry->m_slotAuras[i])
+ {
+ lastaura = false;
+ break;
+ }
}
-
}
}
@@ -3112,6 +3115,21 @@ void Aura::HandleModFear(bool apply, bool Real)
//m_target->SetFeared(apply, GetCasterGUID(), GetId());
m_target->SetControlled(apply, UNIT_STAT_FLEEING);
+
+ // Improved Fear
+ if(!apply && m_spellProto->SpellFamilyName == SPELLFAMILY_WARLOCK)
+ {
+ Unit* caster = GetCaster();
+ if(!caster || caster->GetTypeId() != TYPEID_PLAYER)
+ return;
+ uint32 spell_id = 0;
+ if(caster->HasAura(53754, 0))
+ spell_id = 60946;
+ else if(caster->HasAura(53759, 0))
+ spell_id = 60947;
+ if(spell_id)
+ m_target->CastSpell(m_target, spell_id, true);
+ }
}
void Aura::HandleFeignDeath(bool apply, bool Real)