aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_monk.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_monk.cpp b/src/server/scripts/Spells/spell_monk.cpp
index e87a76c3e9f..93ba174b1b6 100644
--- a/src/server/scripts/Spells/spell_monk.cpp
+++ b/src/server/scripts/Spells/spell_monk.cpp
@@ -32,9 +32,12 @@ enum MonkSpells
SPELL_MONK_CRACKLING_JADE_LIGHTNING_CHI_PROC = 123333,
SPELL_MONK_CRACKLING_JADE_LIGHTNING_KNOCKBACK = 117962,
SPELL_MONK_CRACKLING_JADE_LIGHTNING_KNOCKBACK_CD = 117953,
+ SPELL_MONK_GLYPH_OF_SURGING_MIST = 120483,
SPELL_MONK_PROVOKE_SINGLE_TARGET = 116189,
SPELL_MONK_PROVOKE_AOE = 118635,
SPELL_MONK_STANCE_OF_THE_SPIRITED_CRANE = 154436,
+ SPELL_MONK_SURGING_MIST_HEAL = 116995,
+ SPELL_MONK_SURGING_MIST_HEAL_GLYPHED = 123273,
};
// 117952 - Crackling Jade Lightning
@@ -186,9 +189,54 @@ public:
}
};
+// 116694 - Surging Mist
+class spell_monk_surging_mist : public SpellScriptLoader
+{
+ public:
+ spell_monk_surging_mist() : SpellScriptLoader("spell_monk_surging_mist") { }
+
+ class spell_monk_surging_mist_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_monk_surging_mist_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_MONK_SURGING_MIST_HEAL))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_MONK_SURGING_MIST_HEAL_GLYPHED))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_MONK_GLYPH_OF_SURGING_MIST))
+ return false;
+ return true;
+ }
+
+ void HandleDummy(SpellEffIndex effIndex)
+ {
+ PreventHitDefaultEffect(effIndex);
+ Unit* caster = GetCaster();
+ Unit* target = GetHitUnit();
+ if (caster->GetShapeshiftForm() == FORM_CRANE_STANCE && caster->HasAura(SPELL_MONK_GLYPH_OF_SURGING_MIST))
+ caster->CastSpell(target, SPELL_MONK_SURGING_MIST_HEAL_GLYPHED, true);
+ else
+ caster->CastSpell(target, SPELL_MONK_SURGING_MIST_HEAL, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_monk_surging_mist_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const override
+ {
+ return new spell_monk_surging_mist_SpellScript();
+ }
+};
+
void AddSC_monk_spell_scripts()
{
new spell_monk_crackling_jade_lightning();
new spell_monk_crackling_jade_lightning_knockback_proc_aura();
new spell_monk_provoke();
+ new spell_monk_surging_mist();
}