diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Events/midsummer.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/server/scripts/Events/midsummer.cpp b/src/server/scripts/Events/midsummer.cpp index 0650c044c1..fa88734d7c 100644 --- a/src/server/scripts/Events/midsummer.cpp +++ b/src/server/scripts/Events/midsummer.cpp @@ -1195,6 +1195,49 @@ class spell_midsummer_torch_catch : public SpellScript } }; +// 46592 - Summon Ahune Lieutenant +class spell_midsummer_summon_ahune_lieutenant : public SpellScript +{ + PrepareSpellScript(spell_midsummer_summon_ahune_lieutenant); + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + uint32 zoneId = caster->GetZoneId(); + uint32 npcEntry = 0; + + switch (zoneId) + { + case 331: // Ashenvale + npcEntry = 26116; // Frostwave Lieutenant + break; + case 405: // Desolace + npcEntry = 26178; // Hailstone Lieutenant + break; + case 33: // Stranglethorn Vale + npcEntry = 26204; // Chillwind Lieutenant + break; + case 51: // Searing Gorge + npcEntry = 26214; // Frigid Lieutenant + break; + case 1377: // Silithus + npcEntry = 26215; // Glacial Lieutenant + break; + case 3483: // Hellfire Peninsula + npcEntry = 26216; // Glacial Templar + break; + } + + if (npcEntry) + caster->SummonCreature(npcEntry, caster->GetPosition(), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, MINUTE * IN_MILLISECONDS); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_midsummer_summon_ahune_lieutenant::HandleDummy, EFFECT_1, SPELL_EFFECT_APPLY_AURA); + } +}; + void AddSC_event_midsummer_scripts() { // Player @@ -1215,5 +1258,6 @@ void AddSC_event_midsummer_scripts() RegisterSpellScript(spell_midsummer_fling_torch); RegisterSpellScript(spell_midsummer_juggling_torch); RegisterSpellScript(spell_midsummer_torch_catch); + RegisterSpellScript(spell_midsummer_summon_ahune_lieutenant); } |
