mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
[8418] Implement work talent 47193.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
c2f8a0ff7d
commit
0c78bfba33
3 changed files with 50 additions and 3 deletions
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue