aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Outland
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2022-06-26 21:44:40 +0300
committerShauren <shauren.trinity@gmail.com>2022-09-05 19:37:13 +0200
commit496eba4e8d579816895c11060f896faa4523623e (patch)
tree2be9d713c43f0350202517347057fcc2b7c20a4c /src/server/scripts/Outland
parent249f55a483d49fa52d0d60aadd4a927084317a67 (diff)
Scripts/Spells: Correctly implement Murmur's Touch & Dire Brew (#28058)
(cherry picked from commit f0d2418e5f2dabfae97a481fde52bc20ba93c72e)
Diffstat (limited to 'src/server/scripts/Outland')
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp83
1 files changed, 79 insertions, 4 deletions
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
index f995ff53986..c091efd21c9 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
@@ -25,11 +25,16 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "shadow_labyrinth.h"
+#include "SpellAuraEffects.h"
#include "SpellScript.h"
-enum Murmur
+enum Texts
+{
+ EMOTE_SONIC_BOOM = 0
+};
+
+enum Spells
{
- // Spell
SPELL_RESONANCE = 33657,
SPELL_MAGNETIC_PULL = 33689,
SPELL_SONIC_SHOCK = 38797,
@@ -37,8 +42,11 @@ enum Murmur
SPELL_SONIC_BOOM_CAST = 33923,
SPELL_SONIC_BOOM_EFFECT = 33666,
SPELL_MURMURS_TOUCH = 33711,
- // Text
- EMOTE_SONIC_BOOM = 0
+ SPELL_MURMURS_TOUCH_H = 38794,
+
+ SPELL_MURMURS_TOUCH_DUMMY = 33760,
+ SPELL_SHOCKWAVE = 33686,
+ SPELL_SHOCKWAVE_KNOCK_BACK = 33673
};
enum Events
@@ -214,10 +222,77 @@ class spell_murmur_thundering_storm : public SpellScript
}
};
+// 33711, 38794 - Murmur's Touch
+class spell_murmur_murmurs_touch : public AuraScript
+{
+ PrepareAuraScript(spell_murmur_murmurs_touch);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(
+ {
+ SPELL_MURMURS_TOUCH_DUMMY,
+ SPELL_SHOCKWAVE,
+ SPELL_SHOCKWAVE_KNOCK_BACK
+ });
+ }
+
+ void OnPeriodic(AuraEffect const* aurEff)
+ {
+ Unit* target = GetTarget();
+
+ switch (GetId())
+ {
+ case SPELL_MURMURS_TOUCH:
+ switch (aurEff->GetTickNumber())
+ {
+ case 7:
+ case 10:
+ case 12:
+ case 13:
+ target->CastSpell(target, SPELL_MURMURS_TOUCH_DUMMY, true);
+ break;
+ case 14:
+ target->CastSpell(target, SPELL_MURMURS_TOUCH_DUMMY, true);
+ target->CastSpell(target, SPELL_SHOCKWAVE, true);
+ target->CastSpell(target, SPELL_SHOCKWAVE_KNOCK_BACK, true);
+ break;
+ default:
+ break;
+ }
+ break;
+ case SPELL_MURMURS_TOUCH_H:
+ switch (aurEff->GetTickNumber())
+ {
+ case 3:
+ case 6:
+ target->CastSpell(target, SPELL_MURMURS_TOUCH_DUMMY, true);
+ break;
+ case 7:
+ target->CastSpell(target, SPELL_MURMURS_TOUCH_DUMMY, true);
+ target->CastSpell(target, SPELL_SHOCKWAVE, true);
+ target->CastSpell(target, SPELL_SHOCKWAVE_KNOCK_BACK, true);
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ void Register() override
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_murmur_murmurs_touch::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
+ }
+};
+
void AddSC_boss_murmur()
{
RegisterShadowLabyrinthCreatureAI(boss_murmur);
RegisterSpellScript(spell_murmur_sonic_boom);
RegisterSpellScript(spell_murmur_sonic_boom_effect);
RegisterSpellScript(spell_murmur_thundering_storm);
+ RegisterSpellScript(spell_murmur_murmurs_touch);
}