Scripts/Spells: Implement rogue talent Deepening Shadows (#30980)

This commit is contained in:
Aqua Deus
2025-05-24 21:32:38 +02:00
committed by GitHub
parent f710796c64
commit 1c360b8e11
2 changed files with 34 additions and 0 deletions
@@ -0,0 +1,3 @@
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_rog_deepening_shadows';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(185314, 'spell_rog_deepening_shadows');
+31
View File
@@ -80,6 +80,7 @@ enum RogueSpells
SPELL_ROGUE_RUTHLESS_PRECISION = 193357,
SPELL_ROGUE_SANCTUARY = 98877,
SPELL_ROGUE_SKULL_AND_CROSSBONES = 199603,
SPELL_ROGUE_SHADOW_DANCE = 185313,
SPELL_ROGUE_SHADOW_FOCUS = 108209,
SPELL_ROGUE_SHADOW_FOCUS_EFFECT = 112942,
SPELL_ROGUE_SHIV_NATURE_DAMAGE = 319504,
@@ -342,6 +343,35 @@ class spell_rog_deadly_poison : public SpellScript
}
};
// 185314 - Deepening Shadows
class spell_rog_deepening_shadows : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_ROGUE_SHADOW_DANCE });
}
static bool CheckProc(AuraEffect const* /*aurEff*/, ProcEventInfo const& procEvent)
{
if (Spell const* procSpell = procEvent.GetProcSpell())
return procSpell->GetPowerTypeCostAmount(POWER_COMBO_POINTS) > 0;
return false;
}
void HandleProc(AuraEffect const* aurEff, ProcEventInfo const& procInfo) const
{
Milliseconds amount = -Seconds(aurEff->GetAmount()) * *procInfo.GetProcSpell()->GetPowerTypeCostAmount(POWER_COMBO_POINTS);
GetTarget()->GetSpellHistory()->ModifyChargeRecoveryTime(sSpellMgr->AssertSpellInfo(SPELL_ROGUE_SHADOW_DANCE, GetCastDifficulty())->ChargeCategoryId, amount / 10);
}
void Register() override
{
DoCheckEffectProc += AuraCheckEffectProcFn(spell_rog_deepening_shadows::CheckProc, EFFECT_0, SPELL_AURA_DUMMY);
OnEffectProc += AuraEffectProcFn(spell_rog_deepening_shadows::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
// 32645 - Envenom
class spell_rog_envenom : public SpellScript
{
@@ -1320,6 +1350,7 @@ void AddSC_rogue_spell_scripts()
RegisterSpellScript(spell_rog_blade_flurry);
RegisterSpellScript(spell_rog_cheat_death);
RegisterSpellScript(spell_rog_deadly_poison);
RegisterSpellScript(spell_rog_deepening_shadows);
RegisterSpellScript(spell_rog_envenom);
RegisterSpellScript(spell_rog_eviscerate);
RegisterSpellScript(spell_rog_grand_melee);