Scripts/Spells: Implement rogue talent Shuriken Tornado (#30972)

This commit is contained in:
Aqua Deus
2025-05-25 21:03:36 +02:00
committed by GitHub
parent b08ed2d7c5
commit a8800c4e67
2 changed files with 53 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_rog_shuriken_storm', 'spell_rog_shuriken_tornado');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(197835, 'spell_rog_shuriken_storm'),
(277925, 'spell_rog_shuriken_tornado');

View File

@@ -88,6 +88,8 @@ enum RogueSpells
SPELL_ROGUE_SHIV_NATURE_DAMAGE = 319504,
SPELL_ROGUE_SHOT_IN_THE_DARK_TALENT = 257505,
SPELL_ROGUE_SHOT_IN_THE_DARK_BUFF = 257506,
SPELL_ROGUE_SHURIKEN_STORM_DAMAGE = 197835,
SPELL_ROGUE_SHURIKEN_STORM_ENERGIZE = 212743,
SPELL_ROGUE_SLICE_AND_DICE = 315496,
SPELL_ROGUE_SPRINT = 2983,
SPELL_ROGUE_SOOTHING_DARKNESS_TALENT = 393970,
@@ -1134,6 +1136,51 @@ class spell_rog_shot_in_the_dark_buff : public AuraScript
}
};
// 197835 - Shuriken Storm
class spell_rog_shuriken_storm : public SpellScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo ({ SPELL_ROGUE_SHURIKEN_STORM_ENERGIZE });
}
void HandleEnergize(SpellEffIndex effIndex) const
{
GetCaster()->CastSpell(GetCaster(), SPELL_ROGUE_SHURIKEN_STORM_ENERGIZE, CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.TriggeringSpell = GetSpell(),
.SpellValueOverrides = { { SPELLVALUE_BASE_POINT0, static_cast<int32>(GetUnitTargetCountForEffect(effIndex)) } }
});
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_rog_shuriken_storm::HandleEnergize, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
// 277925 - Shuriken Tornado
class spell_rog_shuriken_tornado : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_ROGUE_SHURIKEN_STORM_DAMAGE });
}
void HandlePeriodicEffect(AuraEffect const* aurEff) const
{
GetTarget()->CastSpell(nullptr, SPELL_ROGUE_SHURIKEN_STORM_DAMAGE, CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_POWER_COST | TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.TriggeringAura = aurEff
});
}
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_rog_shuriken_tornado::HandlePeriodicEffect, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
// 193315 - Sinister Strike
class spell_rog_sinister_strike : public SpellScript
{
@@ -1463,6 +1510,8 @@ void AddSC_rogue_spell_scripts()
RegisterSpellScript(spell_rog_shadow_focus);
RegisterSpellScript(spell_rog_shot_in_the_dark);
RegisterSpellScript(spell_rog_shot_in_the_dark_buff);
RegisterSpellScript(spell_rog_shuriken_storm);
RegisterSpellScript(spell_rog_shuriken_tornado);
RegisterSpellScript(spell_rog_sinister_strike);
RegisterSpellScript(spell_rog_soothing_darkness);
RegisterSpellScript(spell_rog_stealth);