diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 38e80d732..4b6de6e89 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -8174,14 +8174,27 @@ void Aura::PeriodicDummyTick() target->CastSpell(target, 52443, true); return; case 53035: // Summon Anub'ar Champion Periodic (Azjol Nerub) - target->CastSpell(target, 53014, true); // Summon Anub'ar Champion - return; case 53036: // Summon Anub'ar Necromancer Periodic (Azjol Nerub) - target->CastSpell(target, 53015, true); // Summon Anub'ar Necromancer - return; case 53037: // Summon Anub'ar Crypt Fiend Periodic (Azjol Nerub) - target->CastSpell(target, 53016, true); // Summon Anub'ar Crypt Fiend + { + uint32 summonSpells[3][3] = + { + {53090, 53014, 53064}, // Summon Anub'ar Champion + {53092, 53015, 53066}, // Summon Anub'ar Necromancer + {53091, 53016, 53065} // Summon Anub'ar Crypt Fiend + }; + + // Cast different spell depending on trigger position + // This will summon a different npc entry on each location - each of those has individual movement patern + if (target->GetPositionZ() < 750.0f) + target->CastSpell(target, summonSpells[spell->Id - 53035][0], true, NULL, this); + else if (target->GetPositionX() > 500.0f) + target->CastSpell(target, summonSpells[spell->Id - 53035][1], true, NULL, this); + else + target->CastSpell(target, summonSpells[spell->Id - 53035][2], true, NULL, this); + return; + } case 53520: // Carrion Beetles target->CastSpell(target, 53521, true, NULL, this); target->CastSpell(target, 53521, true, NULL, this); diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 21aac81fb..1e46b2f5e 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -2102,6 +2102,21 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons (spellInfo_2->Id == 53456 && spellInfo_1->Id == 53421)) return false; + // Summon Anub'ar Champion Periodic and Summon Anub'ar Necromancer Periodic + if ((spellInfo_1->Id == 53035 && spellInfo_2->Id == 53036) || + (spellInfo_2->Id == 53035 && spellInfo_1->Id == 53036)) + return false; + + // Summon Anub'ar Necromancer Periodic and Summon Anub'ar Crypt Fiend Periodic + if ((spellInfo_1->Id == 53036 && spellInfo_2->Id == 53037) || + (spellInfo_2->Id == 53036 && spellInfo_1->Id == 53037)) + return false; + + // Summon Anub'ar Crypt Fiend Periodic and Summon Anub'ar Champion Periodic + if ((spellInfo_1->Id == 53037 && spellInfo_2->Id == 53035) || + (spellInfo_2->Id == 53037 && spellInfo_1->Id == 53035)) + return false; + break; } case SPELLFAMILY_MAGE: diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 4a788da1c..51ba7bebc 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 "12577" + #define REVISION_NR "12578" #endif // __REVISION_NR_H__