diff options
-rw-r--r-- | sql/updates/world/master/2025_06_15_05_world.sql | 4 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_warrior.cpp | 31 |
2 files changed, 35 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_06_15_05_world.sql b/sql/updates/world/master/2025_06_15_05_world.sql new file mode 100644 index 00000000000..455600ab77a --- /dev/null +++ b/sql/updates/world/master/2025_06_15_05_world.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_warr_vicious_contempt'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(23881, 'spell_warr_vicious_contempt'), +(335096, 'spell_warr_vicious_contempt'); diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index f0b6c6af1bd..744a0af2f02 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -83,6 +83,7 @@ enum WarriorSpells SPELL_WARRIOR_TAUNT = 355, SPELL_WARRIOR_TITANIC_RAGE = 394329, SPELL_WARRIOR_TRAUMA_EFFECT = 215537, + SPELL_WARRIOR_VICIOUS_CONTEMPT = 383885, SPELL_WARRIOR_VICTORIOUS = 32216, SPELL_WARRIOR_VICTORY_RUSH_HEAL = 118779, SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA = 85739, @@ -1135,6 +1136,35 @@ class spell_warr_t3_prot_8p_bonus : public AuraScript } }; +// 383885 - Vicious Contempt (attached to 23881 - Bloodthirst) +// 383885 - Vicious Contempt (attached to 335096 - Bloodbath) +class spell_warr_vicious_contempt : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellEffect({ { SPELL_WARRIOR_VICIOUS_CONTEMPT, EFFECT_0 } }); + } + + bool Load() override + { + return GetCaster()->HasAura(SPELL_WARRIOR_VICIOUS_CONTEMPT); + } + + void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const + { + if (!victim->HasAuraState(AURA_STATE_WOUNDED_35_PERCENT)) + return; + + if (AuraEffect const* aurEff = GetCaster()->GetAuraEffect(SPELL_WARRIOR_VICIOUS_CONTEMPT, EFFECT_0)) + AddPct(pctMod, aurEff->GetAmount()); + } + + void Register() override + { + CalcDamage += SpellCalcDamageFn(spell_warr_vicious_contempt::CalculateDamage); + } +}; + // 32215 - Victorious State class spell_warr_victorious_state : public AuraScript { @@ -1221,6 +1251,7 @@ void AddSC_warrior_spell_scripts() RegisterSpellScript(spell_warr_titanic_rage); RegisterSpellScript(spell_warr_trauma); RegisterSpellScript(spell_warr_t3_prot_8p_bonus); + RegisterSpellScript(spell_warr_vicious_contempt); RegisterSpellScript(spell_warr_victorious_state); RegisterSpellScript(spell_warr_victory_rush); } |