aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2024_09_15_00_world.sql3
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp23
2 files changed, 26 insertions, 0 deletions
diff --git a/sql/updates/world/master/2024_09_15_00_world.sql b/sql/updates/world/master/2024_09_15_00_world.sql
new file mode 100644
index 00000000000..9514593bed0
--- /dev/null
+++ b/sql/updates/world/master/2024_09_15_00_world.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_warl_cataclysm';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(152108, 'spell_warl_cataclysm');
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp
index bcaa2551f0a..7a4f0e57f79 100644
--- a/src/server/scripts/Spells/spell_warlock.cpp
+++ b/src/server/scripts/Spells/spell_warlock.cpp
@@ -200,6 +200,28 @@ class spell_warl_burning_rush_aura : public AuraScript
}
};
+// 152108 - Cataclysm
+class spell_warl_cataclysm : public SpellScript
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_WARLOCK_IMMOLATE_PERIODIC });
+ }
+
+ void HandleHit(SpellEffIndex /*effIndex*/) const
+ {
+ GetCaster()->CastSpell(GetHitUnit(), SPELL_WARLOCK_IMMOLATE_PERIODIC, CastSpellExtraArgsInit{
+ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
+ .TriggeringSpell = GetSpell()
+ });
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_warl_cataclysm::HandleHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+};
+
// 116858 - Chaos Bolt
class spell_warl_chaos_bolt : public SpellScript
{
@@ -1395,6 +1417,7 @@ void AddSC_warlock_spell_scripts()
{
RegisterSpellScript(spell_warl_banish);
RegisterSpellAndAuraScriptPair(spell_warl_burning_rush, spell_warl_burning_rush_aura);
+ RegisterSpellScript(spell_warl_cataclysm);
RegisterSpellScript(spell_warl_chaos_bolt);
RegisterSpellScript(spell_warl_chaotic_energies);
RegisterSpellScript(spell_warl_absolute_corruption);