[8418] Implement work talent 47193.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
Astellar 2009-08-25 14:51:22 +04:00 committed by VladimirMangos
parent c2f8a0ff7d
commit 0c78bfba33
3 changed files with 50 additions and 3 deletions

View file

@ -4887,11 +4887,17 @@ void Aura::HandleAuraModIncreaseHealth(bool apply, bool Real)
case 34511: // Valor (Bulwark of Kings, Bulwark of the Ancient Kings) case 34511: // Valor (Bulwark of Kings, Bulwark of the Ancient Kings)
case 44055: // Tremendous Fortitude (Battlemaster's Alacrity) case 44055: // Tremendous Fortitude (Battlemaster's Alacrity)
case 50322: // Survival Instincts case 50322: // Survival Instincts
case 54443: // Demonic Empowerment (Voidwalker)
{ {
if(Real) if(Real)
{ {
if(apply) if(apply)
{ {
// Demonic Empowerment (Voidwalker) - special case, store percent in data
// recalculate to full amount at apply for proper remove
if (GetId() == 54443)
m_modifier.m_amount = m_target->GetMaxHealth() * m_modifier.m_amount / 100;
m_target->HandleStatModifier(UNIT_MOD_HEALTH, TOTAL_VALUE, float(m_modifier.m_amount), apply); m_target->HandleStatModifier(UNIT_MOD_HEALTH, TOTAL_VALUE, float(m_modifier.m_amount), apply);
m_target->ModifyHealth(m_modifier.m_amount); m_target->ModifyHealth(m_modifier.m_amount);
} }

View file

@ -4918,11 +4918,26 @@ void Spell::EffectScriptEffect(uint32 effIndex)
unitTarget->HandleEmoteCommand(EMOTE_STATE_DANCE); unitTarget->HandleEmoteCommand(EMOTE_STATE_DANCE);
return; return;
} }
// Demonic Empowerment (succubus Vanish effect)
case 54436:
{
if(!unitTarget)
return;
unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_ROOT);
unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_DECREASE_SPEED);
unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_STALKED);
unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_STUN);
return;
}
// Escape artist // Escape artist
case 20589: case 20589:
{ {
m_caster->RemoveSpellsCausingAura(SPELL_AURA_MOD_ROOT); if(!unitTarget)
m_caster->RemoveSpellsCausingAura(SPELL_AURA_MOD_DECREASE_SPEED); return;
unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_ROOT);
unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_DECREASE_SPEED);
return; return;
} }
// Mirren's Drinking Hat // Mirren's Drinking Hat
@ -4948,6 +4963,8 @@ void Spell::EffectScriptEffect(uint32 effIndex)
// Improved Sprint // Improved Sprint
case 30918: case 30918:
{ {
if(!unitTarget)
return;
// Removes snares and roots. // Removes snares and roots.
uint32 mechanic_mask = (1<<MECHANIC_ROOT) | (1<<MECHANIC_SNARE); uint32 mechanic_mask = (1<<MECHANIC_ROOT) | (1<<MECHANIC_SNARE);
Unit::AuraMap& Auras = unitTarget->GetAuras(); Unit::AuraMap& Auras = unitTarget->GetAuras();
@ -5116,6 +5133,8 @@ void Spell::EffectScriptEffect(uint32 effIndex)
case 47871: case 47871:
case 47878: case 47878:
{ {
if(!unitTarget)
return;
uint32 itemtype; uint32 itemtype;
uint32 rank = 0; uint32 rank = 0;
Unit::AuraList const& mDummyAuras = unitTarget->GetAurasByType(SPELL_AURA_DUMMY); Unit::AuraList const& mDummyAuras = unitTarget->GetAurasByType(SPELL_AURA_DUMMY);
@ -5168,6 +5187,26 @@ void Spell::EffectScriptEffect(uint32 effIndex)
DoCreateItem( effIndex, itemtype ); DoCreateItem( effIndex, itemtype );
return; return;
} }
// Demonic Empowerment
case 47193:
{
if(!unitTarget)
return;
uint32 entry = unitTarget->GetEntry();
uint32 spellID;
switch(entry)
{
case 416: spellID = 54444; break; //imp
case 417: spellID = 54509; break; //fellhunter
case 1860: spellID = 54443; break; //void
case 1863: spellID = 54435; break; //succubus
case 17252: spellID = 54508; break; //fellguard
default:
return;
}
unitTarget->CastSpell(unitTarget,spellID,true);
return;
}
// Everlasting Affliction // Everlasting Affliction
case 47422: case 47422:
{ {
@ -5222,6 +5261,8 @@ void Spell::EffectScriptEffect(uint32 effIndex)
// Chimera Shot // Chimera Shot
case 53209: case 53209:
{ {
if(!unitTarget)
return;
uint32 spellId = 0; uint32 spellId = 0;
int32 basePoint = 0; int32 basePoint = 0;
Unit* target = unitTarget; Unit* target = unitTarget;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "8417" #define REVISION_NR "8418"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__