diff options
-rw-r--r-- | sql/updates/world/master/2021_12_25_04_world_shaman_lightning_bolt.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_shaman.cpp | 27 |
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); |