aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2023_06_27_00_world.sql5
-rw-r--r--src/server/scripts/Spells/spell_hunter.cpp47
2 files changed, 52 insertions, 0 deletions
diff --git a/sql/updates/world/master/2023_06_27_00_world.sql b/sql/updates/world/master/2023_06_27_00_world.sql
new file mode 100644
index 00000000000..f780376fe93
--- /dev/null
+++ b/sql/updates/world/master/2023_06_27_00_world.sql
@@ -0,0 +1,5 @@
+-- 257044 - Rapid Fire
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (257044, 257045);
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(257044, 'spell_hun_rapid_fire'),
+(257045, 'spell_hun_rapid_fire_damage');
diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp
index 36650592198..0566369c928 100644
--- a/src/server/scripts/Spells/spell_hunter.cpp
+++ b/src/server/scripts/Spells/spell_hunter.cpp
@@ -50,6 +50,8 @@ enum HunterSpells
SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX_DEBUFF = 55711,
SPELL_HUNTER_POSTHASTE_INCREASE_SPEED = 118922,
SPELL_HUNTER_POSTHASTE_TALENT = 109215,
+ SPELL_HUNTER_RAPID_FIRE_DAMAGE = 257045,
+ SPELL_HUNTER_RAPID_FIRE_ENERGIZE = 263585,
SPELL_HUNTER_STEADY_SHOT_FOCUS = 77443,
SPELL_HUNTER_T9_4P_GREATNESS = 68130,
SPELL_ROAR_OF_SACRIFICE_TRIGGERED = 67481
@@ -430,6 +432,49 @@ class spell_hun_posthaste : public SpellScript
}
};
+// 257044 - Rapid Fire
+class spell_hun_rapid_fire : public AuraScript
+{
+ PrepareAuraScript(spell_hun_rapid_fire);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_HUNTER_RAPID_FIRE_DAMAGE });
+ }
+
+ void HandlePeriodic(AuraEffect const* /*aurEff*/)
+ {
+ if (Unit* caster = GetCaster())
+ caster->CastSpell(GetTarget(), SPELL_HUNTER_RAPID_FIRE_DAMAGE, true);
+ }
+
+ void Register() override
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_hun_rapid_fire::HandlePeriodic, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY);
+ }
+};
+
+// 257045 - Rapid Fire Damage
+class spell_hun_rapid_fire_damage : public SpellScript
+{
+ PrepareSpellScript(spell_hun_rapid_fire_damage);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_HUNTER_RAPID_FIRE_ENERGIZE });
+ }
+
+ void HandleHit(SpellEffIndex /*effIndex*/)
+ {
+ GetCaster()->CastSpell(nullptr, SPELL_HUNTER_RAPID_FIRE_ENERGIZE, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_hun_rapid_fire_damage::HandleHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+};
+
// 53480 - Roar of Sacrifice
class spell_hun_roar_of_sacrifice : public AuraScript
{
@@ -643,6 +688,8 @@ void AddSC_hunter_spell_scripts()
RegisterSpellScript(spell_hun_multi_shot);
RegisterSpellScript(spell_hun_pet_heart_of_the_phoenix);
RegisterSpellScript(spell_hun_posthaste);
+ RegisterSpellScript(spell_hun_rapid_fire);
+ RegisterSpellScript(spell_hun_rapid_fire_damage);
RegisterSpellScript(spell_hun_roar_of_sacrifice);
RegisterSpellScript(spell_hun_scatter_shot);
RegisterSpellScript(spell_hun_steady_shot);