mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-13 03:32:28 -04:00
Scripts/Spells: Implement Cleave Damage Reduction from Improved Whirlwind (Fury Warrior Talent) (#31690)
This commit is contained in:
37
sql/updates/world/master/2026_03_04_00_world.sql
Normal file
37
sql/updates/world/master/2026_03_04_00_world.sql
Normal file
@@ -0,0 +1,37 @@
|
||||
DELETE FROM `spell_proc` WHERE `SpellId` IN (85739);
|
||||
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
|
||||
(85739,0x00,4,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x0,0x1,0x0,0x18,0x0,0,0,0,0); -- Whirlwind
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_warr_improved_whirlwind_cleave');
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(1464, 'spell_warr_improved_whirlwind_cleave'), -- Slam
|
||||
(1715, 'spell_warr_improved_whirlwind_cleave'), -- Hamstring
|
||||
(23881, 'spell_warr_improved_whirlwind_cleave'), -- Bloodthirst
|
||||
(23922, 'spell_warr_improved_whirlwind_cleave'), -- Shield Slam
|
||||
(34428, 'spell_warr_improved_whirlwind_cleave'), -- Victory Rush
|
||||
(85384, 'spell_warr_improved_whirlwind_cleave'), -- Raging Blow
|
||||
(96103, 'spell_warr_improved_whirlwind_cleave'), -- Raging Blow
|
||||
(100130, 'spell_warr_improved_whirlwind_cleave'), -- Furious Slash
|
||||
(163558, 'spell_warr_improved_whirlwind_cleave'), -- Execute Off-Hand
|
||||
(184707, 'spell_warr_improved_whirlwind_cleave'), -- Rampage
|
||||
(184709, 'spell_warr_improved_whirlwind_cleave'), -- Rampage
|
||||
(201363, 'spell_warr_improved_whirlwind_cleave'), -- Rampage
|
||||
(201364, 'spell_warr_improved_whirlwind_cleave'), -- Rampage
|
||||
(202168, 'spell_warr_improved_whirlwind_cleave'), -- Impending Victory
|
||||
(218617, 'spell_warr_improved_whirlwind_cleave'), -- Rampage
|
||||
(260798, 'spell_warr_improved_whirlwind_cleave'), -- Execute
|
||||
(280772, 'spell_warr_improved_whirlwind_cleave'), -- Siegebreaker
|
||||
(280849, 'spell_warr_improved_whirlwind_cleave'), -- Execute
|
||||
(317483, 'spell_warr_improved_whirlwind_cleave'), -- Condemn (Venthyr)
|
||||
(317488, 'spell_warr_improved_whirlwind_cleave'), -- Condemn (Venthyr)
|
||||
(317489, 'spell_warr_improved_whirlwind_cleave'), -- Condemn Off-Hand (Venthyr)
|
||||
(335096, 'spell_warr_improved_whirlwind_cleave'), -- Bloodbath
|
||||
(335098, 'spell_warr_improved_whirlwind_cleave'), -- Crushing Blow
|
||||
(335100, 'spell_warr_improved_whirlwind_cleave'), -- Crushing Blow
|
||||
(394062, 'spell_warr_improved_whirlwind_cleave'), -- Rend
|
||||
(394063, 'spell_warr_improved_whirlwind_cleave'), -- Rend
|
||||
(396718, 'spell_warr_improved_whirlwind_cleave'), -- Onslaught
|
||||
(463815, 'spell_warr_improved_whirlwind_cleave'), -- Arms Execute FX Test
|
||||
(463816, 'spell_warr_improved_whirlwind_cleave'), -- Fury Execute FX Test
|
||||
(463817, 'spell_warr_improved_whirlwind_cleave'), -- Fury Execute Off-Hand FX Test
|
||||
(1269383, 'spell_warr_improved_whirlwind_cleave'); -- Heroic Strike
|
||||
@@ -1163,6 +1163,70 @@ class spell_warr_improved_whirlwind : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 85739 - Whirlwind Cleave aura, attached to the following spells:
|
||||
*
|
||||
* 1464 - Slam
|
||||
* 1715 - Hamstring
|
||||
* 23881 - Bloodthirst
|
||||
* 23922 - Shield Slam
|
||||
* 34428 - Victory Rush
|
||||
* 85384 - Raging Blow
|
||||
* 96103 - Raging Blow
|
||||
* 100130 - Furious Slash
|
||||
* 163558 - Execute Off-Hand
|
||||
* 184707 - Rampage
|
||||
* 184709 - Rampage
|
||||
* 201363 - Rampage
|
||||
* 201364 - Rampage
|
||||
* 202168 - Impending Victory
|
||||
* 218617 - Rampage
|
||||
* 260798 - Execute
|
||||
* 280772 - Siegebreaker
|
||||
* 280849 - Execute
|
||||
* 317483 - Condemn (Venthyr)
|
||||
* 317488 - Condemn (Venthyr)
|
||||
* 317489 - Condemn Off-Hand (Venthyr)
|
||||
* 335096 - Bloodbath
|
||||
* 335098 - Crushing Blow
|
||||
* 335100 - Crushing Blow
|
||||
* 394062 - Rend
|
||||
* 394063 - Rend
|
||||
* 396718 - Onslaught
|
||||
* 463815 - Arms Execute FX Test
|
||||
* 463816 - Fury Execute FX Test
|
||||
* 463817 - Fury Execute Off-Hand FX Test
|
||||
* 1269383 - Heroic Strike
|
||||
*/
|
||||
class spell_warr_improved_whirlwind_cleave : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* spellInfo) override
|
||||
{
|
||||
return ValidateSpellEffect({ { SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA, EFFECT_1 } })
|
||||
&& spellInfo->IsAffected(SPELLFAMILY_WARRIOR, sSpellMgr->AssertSpellInfo(SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA, DIFFICULTY_NONE)->GetEffect(EFFECT_0).SpellClassMask);
|
||||
}
|
||||
|
||||
bool Load() override
|
||||
{
|
||||
return GetCaster()->HasAura(SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA);
|
||||
}
|
||||
|
||||
void CalculateDamage(SpellEffectInfo const& spellEffectInfo, Unit const* victim, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
int32 const targetIndex = GetUnitTargetIndexForEffect(victim->GetGUID(), spellEffectInfo.EffectIndex);
|
||||
if (targetIndex == 0)
|
||||
return; // nothing to do, it's the first target
|
||||
|
||||
if (AuraEffect const* damageEffect = GetCaster()->GetAuraEffect(SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA, EFFECT_1))
|
||||
ApplyPct(pctMod, damageEffect->GetAmount());
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
CalcDamage += SpellCalcDamageFn(spell_warr_improved_whirlwind_cleave::CalculateDamage);
|
||||
}
|
||||
};
|
||||
|
||||
// 3411 - Intervene
|
||||
class spell_warr_intervene : public SpellScript
|
||||
{
|
||||
@@ -2204,6 +2268,7 @@ void AddSC_warrior_spell_scripts()
|
||||
RegisterSpellScript(spell_warr_heroic_leap_damage);
|
||||
RegisterSpellScript(spell_warr_impending_victory);
|
||||
RegisterSpellScript(spell_warr_improved_whirlwind);
|
||||
RegisterSpellScript(spell_warr_improved_whirlwind_cleave);
|
||||
RegisterSpellScript(spell_warr_intervene);
|
||||
RegisterSpellScript(spell_warr_intervene_charge);
|
||||
RegisterSpellScript(spell_warr_intimidating_shout);
|
||||
|
||||
Reference in New Issue
Block a user