mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-13 03:32:28 -04:00
Scripts/Spells: Implement Meat Cleaver (Fury Warrior Talent) (#31671)
This commit is contained in:
8
sql/updates/world/master/2026_02_28_01_world.sql
Normal file
8
sql/updates/world/master/2026_02_28_01_world.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_warr_meat_cleaver_damage_bonus', 'spell_warr_meat_cleaver_damage_bonus_thunder_clap');
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(199667, 'spell_warr_meat_cleaver_damage_bonus'),
|
||||
(44949, 'spell_warr_meat_cleaver_damage_bonus'),
|
||||
(199852, 'spell_warr_meat_cleaver_damage_bonus'),
|
||||
(199851, 'spell_warr_meat_cleaver_damage_bonus'),
|
||||
(6343, 'spell_warr_meat_cleaver_damage_bonus_thunder_clap'),
|
||||
(435222, 'spell_warr_meat_cleaver_damage_bonus_thunder_clap');
|
||||
@@ -49,6 +49,7 @@ enum WarriorSpells
|
||||
SPELL_WARRIOR_CHARGE_DROP_FIRE_PERIODIC = 126661,
|
||||
SPELL_WARRIOR_CHARGE_EFFECT = 198337,
|
||||
SPELL_WARRIOR_CHARGE_ROOT_EFFECT = 105771,
|
||||
SPELL_WARRIOR_CRASHING_THUNDER_TALENT = 436707,
|
||||
SPELL_WARRIOR_COLD_STEEL_HOT_BLOOD_TALENT = 383959,
|
||||
SPELL_WARRIOR_COLOSSUS_SMASH = 167105,
|
||||
SPELL_WARRIOR_COLOSSUS_SMASH_AURA = 208086,
|
||||
@@ -83,6 +84,7 @@ enum WarriorSpells
|
||||
SPELL_WARRIOR_IMPENDING_VICTORY = 202168,
|
||||
SPELL_WARRIOR_IMPENDING_VICTORY_HEAL = 202166,
|
||||
SPELL_WARRIOR_IMPROVED_HEROIC_LEAP = 157449,
|
||||
SPELL_WARRIOR_MEAT_CLEAVER_TALENT = 280392,
|
||||
SPELL_WARRIOR_MORTAL_STRIKE = 12294,
|
||||
SPELL_WARRIOR_MORTAL_WOUNDS = 115804,
|
||||
SPELL_WARRIOR_OVERPOWER = 7384,
|
||||
@@ -1314,6 +1316,63 @@ class spell_warr_item_t10_prot_4p_bonus : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 280392 - Meat Cleaver (attached to 199667 - Whirlwind, 44949 - Whirlwind Off-Hand, 199852 - Whirlwind, 199851 - Whirlwind Off-Hand)
|
||||
class spell_warr_meat_cleaver_damage_bonus : public SpellScript
|
||||
{
|
||||
protected:
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellEffect({{ SPELL_WARRIOR_MEAT_CLEAVER_TALENT, EFFECT_1 } });
|
||||
}
|
||||
|
||||
bool Load() override
|
||||
{
|
||||
return GetCaster()->HasAura(SPELL_WARRIOR_MEAT_CLEAVER_TALENT);
|
||||
}
|
||||
|
||||
void HandleDamageBonus(SpellEffectInfo const& spellEffectInfo, Unit const* /*victim*/, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
Unit const* caster = GetCaster();
|
||||
Aura const* meatCleaver = caster->GetAura(SPELL_WARRIOR_MEAT_CLEAVER_TALENT);
|
||||
if (!meatCleaver)
|
||||
return;
|
||||
|
||||
AuraEffect const* minTargetCount = meatCleaver->GetEffect(EFFECT_1);
|
||||
if (!minTargetCount)
|
||||
return;
|
||||
|
||||
int64 const targetCount = GetUnitTargetCountForEffect(spellEffectInfo.EffectIndex);
|
||||
|
||||
if (targetCount < minTargetCount->GetAmount())
|
||||
return;
|
||||
|
||||
if (AuraEffect const* aurEff = meatCleaver->GetEffect(EFFECT_0))
|
||||
AddPct(pctMod, aurEff->GetAmount());
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
CalcDamage += SpellCalcDamageFn(spell_warr_meat_cleaver_damage_bonus::HandleDamageBonus);
|
||||
}
|
||||
};
|
||||
|
||||
// 280392 - Meat Cleaver (attached to 6343 - Thunder Clap)
|
||||
// 280392 - Meat Cleaver (attached to 435222 - Thunder Blast)
|
||||
class spell_warr_meat_cleaver_damage_bonus_thunder_clap : public spell_warr_meat_cleaver_damage_bonus
|
||||
{
|
||||
bool Validate(SpellInfo const* spellInfo) override
|
||||
{
|
||||
return spell_warr_meat_cleaver_damage_bonus::Validate(spellInfo)
|
||||
&& ValidateSpellInfo({ SPELL_WARRIOR_CRASHING_THUNDER_TALENT });
|
||||
}
|
||||
|
||||
bool Load() override
|
||||
{
|
||||
return spell_warr_meat_cleaver_damage_bonus::Load()
|
||||
&& GetCaster()->HasAura(SPELL_WARRIOR_CRASHING_THUNDER_TALENT);
|
||||
}
|
||||
};
|
||||
|
||||
// 12294 - Mortal Strike
|
||||
class spell_warr_mortal_strike : public SpellScript
|
||||
{
|
||||
@@ -2011,6 +2070,8 @@ void AddSC_warrior_spell_scripts()
|
||||
RegisterSpellScript(spell_warr_intimidating_shout_menace_knock_back);
|
||||
RegisterSpellScript(spell_warr_invigorating_fury);
|
||||
RegisterSpellScript(spell_warr_item_t10_prot_4p_bonus);
|
||||
RegisterSpellScript(spell_warr_meat_cleaver_damage_bonus);
|
||||
RegisterSpellScript(spell_warr_meat_cleaver_damage_bonus_thunder_clap);
|
||||
RegisterSpellScript(spell_warr_mortal_strike);
|
||||
RegisterSpellScript(spell_warr_overpowering_finish);
|
||||
RegisterSpellScript(spell_warr_pain_and_gain_heal);
|
||||
|
||||
Reference in New Issue
Block a user