mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
[8975] Spell 34914 and ranks will deals damage at dispel.
(cherry-picked from commit 6ff5b6a) Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
2d7441b5a1
commit
d897f55970
3 changed files with 24 additions and 6 deletions
|
|
@ -5897,7 +5897,7 @@ void Aura::HandleShapeshiftBoosts(bool apply)
|
|||
|
||||
void Aura::HandleSpellSpecificBoosts(bool apply)
|
||||
{
|
||||
bool cast_at_remove = false; // if spell must be casted at aura remove
|
||||
bool cast_at_remove = false; // if spell must be casted at last aura from stack remove
|
||||
uint32 spellId1 = 0;
|
||||
uint32 spellId2 = 0;
|
||||
uint32 spellId3 = 0;
|
||||
|
|
@ -5907,7 +5907,7 @@ void Aura::HandleSpellSpecificBoosts(bool apply)
|
|||
{
|
||||
case SPELLFAMILY_MAGE:
|
||||
{
|
||||
// Ice Barrier
|
||||
// Ice Barrier (non stacking from one caster)
|
||||
if (m_spellProto->SpellIconID == 32)
|
||||
{
|
||||
if (!apply && (m_removeMode == AURA_REMOVE_BY_DISPEL || (m_removeMode == AURA_REMOVE_BY_DEFAULT && !GetModifier()->m_amount)))
|
||||
|
|
@ -5954,7 +5954,7 @@ void Aura::HandleSpellSpecificBoosts(bool apply)
|
|||
break;
|
||||
}
|
||||
case SPELLFAMILY_WARLOCK:
|
||||
// Fear
|
||||
// Fear (non stacking)
|
||||
if (m_spellProto->SpellFamilyFlags & UI64LIT(0x0000040000000000))
|
||||
{
|
||||
if(!apply)
|
||||
|
|
|
|||
|
|
@ -3962,11 +3962,11 @@ void Unit::RemoveSingleAuraDueToSpellByDispel(uint32 spellId, uint64 casterGUID,
|
|||
|
||||
// backfire damage and silence
|
||||
dispeler->CastCustomSpell(dispeler, 31117, &damage, NULL, NULL, true, NULL, NULL,casterGUID);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Flame Shock
|
||||
if (spellEntry->SpellFamilyName == SPELLFAMILY_SHAMAN && (spellEntry->SpellFamilyFlags & UI64LIT(0x10000000)))
|
||||
else if (spellEntry->SpellFamilyName == SPELLFAMILY_SHAMAN && (spellEntry->SpellFamilyFlags & UI64LIT(0x10000000)))
|
||||
{
|
||||
Unit* caster = NULL;
|
||||
uint32 triggeredSpell = 0;
|
||||
|
|
@ -3998,6 +3998,24 @@ void Unit::RemoveSingleAuraDueToSpellByDispel(uint32 spellId, uint64 casterGUID,
|
|||
caster->CastSpell(caster, triggeredSpell, true);
|
||||
return;
|
||||
}
|
||||
// Vampiric touch (first dummy aura)
|
||||
else if (spellEntry->SpellFamilyName == SPELLFAMILY_PRIEST && spellEntry->SpellFamilyFlags & UI64LIT(0x0000040000000000))
|
||||
{
|
||||
if (Aura *dot = GetAura(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_PRIEST, UI64LIT(0x0000040000000000), 0x00000000, casterGUID))
|
||||
{
|
||||
if(Unit* caster = dot->GetCaster())
|
||||
{
|
||||
int32 bp0 = dot->GetModifier()->m_amount;
|
||||
bp0 = 8 * caster->SpellDamageBonus(this, spellEntry, bp0, DOT, 1);
|
||||
|
||||
// Remove spell auras from stack
|
||||
RemoveSingleSpellAurasByCasterSpell(spellId, casterGUID, AURA_REMOVE_BY_DISPEL);
|
||||
|
||||
CastCustomSpell(this, 64085, &bp0, NULL, NULL, true, NULL, NULL, casterGUID);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RemoveSingleSpellAurasByCasterSpell(spellId, casterGUID, AURA_REMOVE_BY_DISPEL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "8974"
|
||||
#define REVISION_NR "8975"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue