aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2021_12_25_04_world_shaman_lightning_bolt.sql3
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp27
2 files changed, 30 insertions, 0 deletions
diff --git a/sql/updates/world/master/2021_12_25_04_world_shaman_lightning_bolt.sql b/sql/updates/world/master/2021_12_25_04_world_shaman_lightning_bolt.sql
new file mode 100644
index 00000000000..6a3cea85940
--- /dev/null
+++ b/sql/updates/world/master/2021_12_25_04_world_shaman_lightning_bolt.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_sha_lightning_bolt';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(188196, 'spell_sha_lightning_bolt');
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index 1e9cc40ba65..3b680dec910 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -66,7 +66,9 @@ enum ShamanSpells
SPELL_SHAMAN_LAVA_BURST = 51505,
SPELL_SHAMAN_LAVA_BURST_BONUS_DAMAGE = 71824,
SPELL_SHAMAN_LAVA_SURGE = 77762,
+ SPELL_SHAMAN_LIGHTNING_BOLT_ENERGIZE = 214815,
SPELL_SHAMAN_LIQUID_MAGMA_HIT = 192231,
+ SPELL_SHAMAN_MAELSTROM_CONTROLLER = 343725,
SPELL_SHAMAN_PATH_OF_FLAMES_SPREAD = 210621,
SPELL_SHAMAN_PATH_OF_FLAMES_TALENT = 201909,
SPELL_SHAMAN_POWER_SURGE = 40466,
@@ -770,6 +772,30 @@ class spell_sha_lava_surge_proc : public SpellScript
}
};
+// 188196 - Lightning Bolt
+class spell_sha_lightning_bolt : public SpellScript
+{
+ PrepareSpellScript(spell_sha_lightning_bolt);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_SHAMAN_LIGHTNING_BOLT_ENERGIZE, SPELL_SHAMAN_MAELSTROM_CONTROLLER })
+ && sSpellMgr->AssertSpellInfo(SPELL_SHAMAN_MAELSTROM_CONTROLLER, DIFFICULTY_NONE)->GetEffects().size() > EFFECT_0;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (AuraEffect const* energizeAmount = GetCaster()->GetAuraEffect(SPELL_SHAMAN_MAELSTROM_CONTROLLER, EFFECT_0))
+ GetCaster()->CastSpell(GetCaster(), SPELL_SHAMAN_LIGHTNING_BOLT_ENERGIZE, CastSpellExtraArgs(energizeAmount)
+ .AddSpellMod(SPELLVALUE_BASE_POINT0, energizeAmount->GetAmount()));
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_sha_lightning_bolt::HandleScript, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+};
+
// 192223 - Liquid Magma Totem (erupting hit spell)
class spell_sha_liquid_magma_totem : public SpellScript
{
@@ -1187,6 +1213,7 @@ void AddSC_shaman_spell_scripts()
RegisterSpellScript(spell_sha_lava_burst);
RegisterAuraScript(spell_sha_lava_surge);
RegisterSpellScript(spell_sha_lava_surge_proc);
+ RegisterSpellScript(spell_sha_lightning_bolt);
RegisterSpellScript(spell_sha_liquid_magma_totem);
RegisterSpellScript(spell_sha_path_of_flames_spread);
RegisterAuraScript(spell_sha_tidal_waves);