aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNaddley <64811442+Naddley@users.noreply.github.com>2023-01-29 20:40:39 +0100
committerGitHub <noreply@github.com>2023-01-29 20:40:39 +0100
commitb73330999f447a2c4893d50b3d24fd77b2500178 (patch)
treec54174ad740dd62156ae4ea5c06090ca7300ae77 /src
parent97d413c9b4be6af296490580f7acc1d66e606ca9 (diff)
Scripts/Monk: Implement Power Strikes (#28794)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_monk.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_monk.cpp b/src/server/scripts/Spells/spell_monk.cpp
index 7ac66095f98..10de007c8a2 100644
--- a/src/server/scripts/Spells/spell_monk.cpp
+++ b/src/server/scripts/Spells/spell_monk.cpp
@@ -35,6 +35,8 @@ 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_POWER_STRIKE_PROC = 129914,
+ SPELL_MONK_POWER_STRIKE_ENERGIZE = 121283,
SPELL_MONK_PROVOKE_SINGLE_TARGET = 116189,
SPELL_MONK_PROVOKE_AOE = 118635,
SPELL_MONK_NO_FEATHER_FALL = 79636,
@@ -118,6 +120,48 @@ class spell_monk_crackling_jade_lightning_knockback_proc_aura : public AuraScrip
}
};
+// 121817 - Power Strike
+class spell_monk_power_strike_periodic : public AuraScript
+{
+ PrepareAuraScript(spell_monk_power_strike_periodic);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_MONK_POWER_STRIKE_PROC });
+ }
+
+ void HandlePeriodic(AuraEffect const* /*aurEff*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_MONK_POWER_STRIKE_PROC, true);
+ }
+
+ void Register() override
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_monk_power_strike_periodic::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+};
+
+// 129914 - Power Strike Proc
+class spell_monk_power_strike_proc : public AuraScript
+{
+ PrepareAuraScript(spell_monk_power_strike_proc);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_MONK_POWER_STRIKE_ENERGIZE });
+ }
+
+ void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& /*eventInfo*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_MONK_POWER_STRIKE_ENERGIZE, true);
+ }
+
+ void Register() override
+ {
+ OnEffectProc += AuraEffectProcFn(spell_monk_power_strike_proc::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
+};
+
// 115546 - Provoke
class spell_monk_provoke : public SpellScript
{
@@ -465,6 +509,8 @@ void AddSC_monk_spell_scripts()
{
RegisterSpellScript(spell_monk_crackling_jade_lightning);
RegisterSpellScript(spell_monk_crackling_jade_lightning_knockback_proc_aura);
+ RegisterSpellScript(spell_monk_power_strike_periodic);
+ RegisterSpellScript(spell_monk_power_strike_proc);
RegisterSpellScript(spell_monk_provoke);
RegisterSpellScript(spell_monk_roll);
RegisterSpellScript(spell_monk_roll_aura);