diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index cf9e51414..11096cfea 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1060,8 +1060,26 @@ void Aura::TriggerSpell() { switch(auraId) { -// // Periodic Mana Burn -// case 812: break; + case 812: // Periodic Mana Burn + { + trigger_spell_id = 25779; // Mana Burn + + // expected selection current fight target + triggerTarget = GetTarget()->getVictim(); + if (!triggerTarget || triggerTarget->GetMaxPower(POWER_MANA) <= 0) + return; + + triggeredSpellInfo = sSpellStore.LookupEntry(trigger_spell_id); + if (!triggeredSpellInfo) + return; + + SpellRangeEntry const* srange = sSpellRangeStore.LookupEntry(triggeredSpellInfo->rangeIndex); + float max_range = GetSpellMaxRange(srange); + if (!triggerTarget->IsWithinDist(GetTarget(),max_range)) + return; + + break; + } // // Polymorphic Ray // case 6965: break; // Thaumaturgy Channel @@ -1668,6 +1686,21 @@ void Aura::TriggerSpell() // Spell exist but require custom code switch(auraId) { + case 9347: // Mortal Strike + { + // expected selection current fight target + triggerTarget = GetTarget()->getVictim(); + if (!triggerTarget) + return; + + // avoid triggering for far target + SpellRangeEntry const* srange = sSpellRangeStore.LookupEntry(triggeredSpellInfo->rangeIndex); + float max_range = GetSpellMaxRange(srange); + if (!triggerTarget->IsWithinDist(GetTarget(),max_range)) + return; + + break; + } // Curse of Idiocy case 1010: { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 844574dc6..b97230378 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 "10173" + #define REVISION_NR "10174" #endif // __REVISION_NR_H__