mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Spells: Implement hunter talent Rejuvenating Wind (#30839)
This commit is contained in:
7
sql/updates/world/master/2025_05_05_04_world.sql
Normal file
7
sql/updates/world/master/2025_05_05_04_world.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_hun_rejuvenating_wind';
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(385539,'spell_hun_rejuvenating_wind');
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellId`=385539;
|
||||
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
|
||||
(385539,0x00,9,0x00000000,0x00000000,0x00000000,0x00000800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0,0,0); -- Rejuvenating Wind
|
||||
@@ -74,6 +74,7 @@ enum HunterSpells
|
||||
SPELL_HUNTER_RAPID_FIRE = 257044,
|
||||
SPELL_HUNTER_RAPID_FIRE_DAMAGE = 257045,
|
||||
SPELL_HUNTER_RAPID_FIRE_ENERGIZE = 263585,
|
||||
SPELL_HUNTER_REJUVENATING_WIND_HEAL = 385540,
|
||||
SPELL_HUNTER_SCOUTS_INSTINCTS = 459455,
|
||||
SPELL_HUNTER_STEADY_SHOT = 56641,
|
||||
SPELL_HUNTER_STEADY_SHOT_FOCUS = 77443,
|
||||
@@ -773,6 +774,36 @@ class spell_hun_rapid_fire_damage : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
// 385539 - Rejuvenating Wind
|
||||
class spell_hun_rejuvenating_wind : public AuraScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_HUNTER_REJUVENATING_WIND_HEAL })
|
||||
&& sSpellMgr->AssertSpellInfo(SPELL_HUNTER_REJUVENATING_WIND_HEAL, DIFFICULTY_NONE)->GetMaxTicks() > 0;
|
||||
}
|
||||
|
||||
void HandleProc(AuraEffect const* aurEff, ProcEventInfo const& /*procEvent*/)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
|
||||
Unit* caster = GetTarget();
|
||||
|
||||
uint32 ticks = sSpellMgr->AssertSpellInfo(SPELL_HUNTER_REJUVENATING_WIND_HEAL, DIFFICULTY_NONE)->GetMaxTicks();
|
||||
int32 heal = CalculatePct(caster->GetMaxHealth(), aurEff->GetAmount()) / ticks;
|
||||
|
||||
caster->CastSpell(caster, SPELL_HUNTER_REJUVENATING_WIND_HEAL, CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
|
||||
.SpellValueOverrides = { { SPELLVALUE_BASE_POINT0, heal } }
|
||||
});
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_hun_rejuvenating_wind::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
// 53480 - Roar of Sacrifice
|
||||
class spell_hun_roar_of_sacrifice : public AuraScript
|
||||
{
|
||||
@@ -1176,6 +1207,7 @@ void AddSC_hunter_spell_scripts()
|
||||
RegisterSpellScript(spell_hun_posthaste);
|
||||
RegisterSpellScript(spell_hun_rapid_fire);
|
||||
RegisterSpellScript(spell_hun_rapid_fire_damage);
|
||||
RegisterSpellScript(spell_hun_rejuvenating_wind);
|
||||
RegisterSpellScript(spell_hun_roar_of_sacrifice);
|
||||
RegisterSpellScript(spell_hun_scatter_shot);
|
||||
RegisterSpellScript(spell_hun_scouts_instincts);
|
||||
|
||||
Reference in New Issue
Block a user