aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAqua Deus <95978183+aquadeus@users.noreply.github.com>2025-06-06 18:16:32 +0200
committerGitHub <noreply@github.com>2025-06-06 18:16:32 +0200
commit7c20119733a5b4f3b5454b4511a8d46840492324 (patch)
tree39206474476d54fe236c92c0f3e68d93e8d60c0a /src
parent61f10d964a48a40522441c42553a93f5b3560821 (diff)
Scripts/Spells: Implement monk talent Mists of Life (#31030)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_monk.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_monk.cpp b/src/server/scripts/Spells/spell_monk.cpp
index 03e468a2f24..8bccb2cdc29 100644
--- a/src/server/scripts/Spells/spell_monk.cpp
+++ b/src/server/scripts/Spells/spell_monk.cpp
@@ -42,7 +42,9 @@ 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_ENVELOPING_MIST = 124682,
SPELL_MONK_JADE_WALK = 450552,
+ SPELL_MONK_MISTS_OF_LIFE = 388548,
SPELL_MONK_MORTAL_WOUNDS = 115804,
SPELL_MONK_POWER_STRIKE_PROC = 129914,
SPELL_MONK_POWER_STRIKE_ENERGIZE = 121283,
@@ -51,6 +53,7 @@ enum MonkSpells
SPELL_MONK_PROVOKE_AOE = 118635,
SPELL_MONK_NO_FEATHER_FALL = 79636,
SPELL_MONK_OPEN_PALM_STRIKES_TALENT = 392970,
+ SPELL_MONK_RENEWING_MIST = 119611,
SPELL_MONK_ROLL_BACKWARD = 109131,
SPELL_MONK_ROLL_FORWARD = 107427,
SPELL_MONK_SAVE_THEM_ALL_HEAL_BONUS = 390105,
@@ -239,6 +242,38 @@ class spell_monk_life_cocoon : public SpellScript
}
};
+// 388548 - Mists of Life (attached to 116849 - Life Cocoon)
+class spell_monk_mists_of_life : public SpellScript
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_MONK_MISTS_OF_LIFE, SPELL_MONK_RENEWING_MIST, SPELL_MONK_ENVELOPING_MIST });
+ }
+
+ bool Load() override
+ {
+ return GetCaster()->HasAuraEffect(SPELL_MONK_MISTS_OF_LIFE, EFFECT_0);
+ }
+
+ void HandleEffectApply(SpellEffIndex /*effIndex*/) const
+ {
+ Unit* caster = GetCaster();
+ Unit* target = GetHitUnit();
+
+ CastSpellExtraArgs args;
+ args.SetTriggerFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_POWER_COST | TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_IGNORE_CAST_TIME | TRIGGERED_DONT_REPORT_CAST_ERROR);
+ args.SetTriggeringSpell(GetSpell());
+
+ caster->CastSpell(target, SPELL_MONK_RENEWING_MIST, args);
+ caster->CastSpell(target, SPELL_MONK_ENVELOPING_MIST, args);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_monk_mists_of_life::HandleEffectApply, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
+ }
+};
+
// 392972 - Open Palm Strikes
class spell_monk_open_palm_strikes : public AuraScript
{
@@ -763,6 +798,7 @@ void AddSC_monk_spell_scripts()
RegisterSpellScript(spell_monk_crackling_jade_lightning_knockback_proc_aura);
RegisterSpellScript(spell_monk_jade_walk);
RegisterSpellScript(spell_monk_life_cocoon);
+ RegisterSpellScript(spell_monk_mists_of_life);
RegisterSpellScript(spell_monk_open_palm_strikes);
RegisterSpellScript(spell_monk_power_strike_periodic);
RegisterSpellScript(spell_monk_power_strike_proc);