Scripts/Spells: Fixed lightning bolt energize (elemental) (#27467)

Co-authored-by: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
aquadeus
2021-12-25 21:55:23 +01:00
committed by GitHub
parent 5be16577f7
commit c95b1784df
2 changed files with 30 additions and 0 deletions

View File

@@ -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');

View File

@@ -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);