Scripts/Monk: Surging Mist

* When glyphed and in stance will cast AOE ally selection heal
* Else, cast normal heal on Explicit target
This commit is contained in:
Kito
2016-06-18 20:34:45 +02:00
committed by Shauren
parent b4c83443e7
commit c5bad429e2
2 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_monk_surging_mist';
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(116694,'spell_monk_surging_mist');

View File

@@ -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();
}