mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Spells: Implement warrior hero talent Storm Bolts (#30827)
This commit is contained in:
3
sql/updates/world/master/2025_04_18_01_world.sql
Normal file
3
sql/updates/world/master/2025_04_18_01_world.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_warr_storm_bolts';
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(107570, 'spell_warr_storm_bolts');
|
||||
@@ -68,6 +68,7 @@ enum WarriorSpells
|
||||
SPELL_WARRIOR_SHOCKWAVE_STUN = 132168,
|
||||
SPELL_WARRIOR_STOICISM = 70845,
|
||||
SPELL_WARRIOR_STORM_BOLT_STUN = 132169,
|
||||
SPELL_WARRIOR_STORM_BOLTS = 436162,
|
||||
SPELL_WARRIOR_STRATEGIST = 384041,
|
||||
SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1 = 12723,
|
||||
SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2 = 26654,
|
||||
@@ -631,20 +632,44 @@ class spell_warr_storm_bolt : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo
|
||||
({
|
||||
SPELL_WARRIOR_STORM_BOLT_STUN
|
||||
});
|
||||
return ValidateSpellInfo({ SPELL_WARRIOR_STORM_BOLT_STUN });
|
||||
}
|
||||
|
||||
void HandleOnHit(SpellEffIndex /*effIndex*/)
|
||||
void HandleOnHit(SpellEffIndex /*effIndex*/) const
|
||||
{
|
||||
GetCaster()->CastSpell(GetHitUnit(), SPELL_WARRIOR_STORM_BOLT_STUN, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_warr_storm_bolt::HandleOnHit, EFFECT_1, SPELL_EFFECT_DUMMY);
|
||||
OnEffectHitTarget += SpellEffectFn(spell_warr_storm_bolt::HandleOnHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
|
||||
}
|
||||
};
|
||||
|
||||
// 107570 - Storm Bolt
|
||||
class spell_warr_storm_bolts: public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_WARRIOR_STORM_BOLTS });
|
||||
}
|
||||
|
||||
bool Load() override
|
||||
{
|
||||
return !GetCaster()->HasAura(SPELL_WARRIOR_STORM_BOLTS);
|
||||
}
|
||||
|
||||
void FilterTargets(std::list<WorldObject*>& targets) const
|
||||
{
|
||||
targets.clear();
|
||||
|
||||
if (Unit* target = GetExplTargetUnit())
|
||||
targets.push_back(target);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warr_storm_bolts::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -856,6 +881,7 @@ void AddSC_warrior_spell_scripts()
|
||||
RegisterSpellScript(spell_warr_shield_charge);
|
||||
RegisterSpellScript(spell_warr_shockwave);
|
||||
RegisterSpellScript(spell_warr_storm_bolt);
|
||||
RegisterSpellScript(spell_warr_storm_bolts);
|
||||
RegisterSpellScript(spell_warr_strategist);
|
||||
RegisterSpellScript(spell_warr_sudden_death);
|
||||
RegisterSpellScript(spell_warr_sweeping_strikes);
|
||||
|
||||
Reference in New Issue
Block a user