diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index c1ea40f72..d553575b7 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -5688,6 +5688,31 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx) unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_DECREASE_SPEED); return; } + case 22539: // Shadow Flame (All script effects, not just end ones to + case 22972: // prevent player from dodging the last triggered spell) + case 22975: + case 22976: + case 22977: + case 22978: + case 22979: + case 22980: + case 22981: + case 22982: + case 22983: + case 22984: + case 22985: + { + if (!unitTarget || !unitTarget->isAlive()) + return; + + // Onyxia Scale Cloak + if (unitTarget->GetDummyAura(22683)) + return; + + // Shadow Flame + m_caster->CastSpell(unitTarget, 22682, true); + return; + } case 24590: // Brittle Armor - need remove one 24575 Brittle Armor aura unitTarget->RemoveAuraHolderFromStack(24575); return; @@ -5707,9 +5732,6 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx) unitTarget->CastSpell(unitTarget, iTmpSpellId, true); return; } - case 26465: // Mercurial Shield - need remove one 26464 Mercurial Shield aura - unitTarget->RemoveAuraHolderFromStack(26464); - return; case 25140: // Orb teleport spells case 25143: case 25650: @@ -5740,31 +5762,19 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx) unitTarget->CastSpell(unitTarget,spellid,false); return; } - case 22539: // Shadow Flame (All script effects, not just end ones to - case 22972: // prevent player from dodging the last triggered spell) - case 22975: - case 22976: - case 22977: - case 22978: - case 22979: - case 22980: - case 22981: - case 22982: - case 22983: - case 22984: - case 22985: + case 26218: // Mistletoe { - if (!unitTarget || !unitTarget->isAlive()) + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) return; - // Onyxia Scale Cloak - if (unitTarget->GetDummyAura(22683)) - return; + uint32 spells[3] = {26206, 26207, 45036}; - // Shadow Flame - m_caster->CastSpell(unitTarget, 22682, true); + m_caster->CastSpell(unitTarget, spells[urand(0, 2)], true); return; } + case 26465: // Mercurial Shield - need remove one 26464 Mercurial Shield aura + unitTarget->RemoveAuraHolderFromStack(26464); + return; case 26656: // Summon Black Qiraji Battle Tank { if (!unitTarget) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index b7be7e78c..150ac0459 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10836" + #define REVISION_NR "10837" #endif // __REVISION_NR_H__