From 45ea548ff69445a1da9526606e3675a06d3cb92f Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Tue, 24 Feb 2026 23:20:02 -0600 Subject: [PATCH] fix(Scripts/Spells): Add missing Druid T10 Balance 2P bonus (#24865) Co-authored-by: blinkysc Co-authored-by: Ariel Bastos --- .../pending_db_world/rev_1771984985196552455.sql | 7 +++++++ src/server/scripts/Spells/spell_druid.cpp | 15 +++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1771984985196552455.sql diff --git a/data/sql/updates/pending_db_world/rev_1771984985196552455.sql b/data/sql/updates/pending_db_world/rev_1771984985196552455.sql new file mode 100644 index 000000000..6f913477f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1771984985196552455.sql @@ -0,0 +1,7 @@ +-- Threat of Thassarian: OH attack should fire even when MH misses/dodges/parries +-- SpellTypeMask 0 = don't filter by spell type (miss/dodge/parry have no damage, so +-- PROC_SPELL_TYPE_DAMAGE won't match - need to allow PROC_SPELL_TYPE_NO_DMG_HEAL too) +-- HitMask 0x477 = PROC_HIT_NORMAL | PROC_HIT_CRITICAL | PROC_HIT_MISS | PROC_HIT_DODGE | PROC_HIT_PARRY | PROC_HIT_BLOCK | PROC_HIT_ABSORB +DELETE FROM `spell_proc` WHERE `SpellId` = -65661; +INSERT INTO `spell_proc` (`SpellId`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `DisableEffectsMask`, `ProcsPerMinute`, `Chance`, `Cooldown`, `Charges`) VALUES +(-65661, 0, 15, 4194321, 537001988, 0, 0x10, 0, 2, 0x477, 0, 0, 0, 100, 0, 0); diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp index 2bac18112..fea4d869e 100644 --- a/src/server/scripts/Spells/spell_druid.cpp +++ b/src/server/scripts/Spells/spell_druid.cpp @@ -88,6 +88,8 @@ enum DruidSpells SPELL_DRUID_GLYPH_OF_RIP = 54818, SPELL_DRUID_RIP_DURATION_LACERATE_DMG = 60141, SPELL_DRUID_REJUVENATION_T10_PROC = 70691, + SPELL_DRUID_BALANCE_T10_BONUS = 70718, + SPELL_DRUID_BALANCE_T10_BONUS_PROC = 70721, SPELL_DRUID_LANGUISH = 71023, // T9 Feral Relic SPELL_DRUID_T9_FERAL_RELIC_BEAR = 67354, @@ -234,6 +236,11 @@ class spell_dru_omen_of_clarity : public AuraScript { PrepareAuraScript(spell_dru_omen_of_clarity); + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_DRUID_BALANCE_T10_BONUS, SPELL_DRUID_BALANCE_T10_BONUS_PROC }); + } + bool CheckProc(ProcEventInfo& eventInfo) { SpellInfo const* spellInfo = eventInfo.GetSpellInfo(); @@ -268,9 +275,17 @@ class spell_dru_omen_of_clarity : public AuraScript return true; } + void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) + { + Unit* target = GetTarget(); + if (target->HasAura(SPELL_DRUID_BALANCE_T10_BONUS)) + target->CastSpell(nullptr, SPELL_DRUID_BALANCE_T10_BONUS_PROC, true, nullptr, aurEff); + } + void Register() override { DoCheckProc += AuraCheckProcFn(spell_dru_omen_of_clarity::CheckProc); + OnEffectProc += AuraEffectProcFn(spell_dru_omen_of_clarity::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); } };