From 80b9e160dd23acb76d4a2b77129f27d2766d63c6 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Tue, 24 Jan 2023 11:22:13 +0100 Subject: [PATCH] Core/Spells: fixed Elemental Shaman T12 4p bonus --- .../world/4.3.4/2023_01_24_00_world.sql | 3 +++ src/server/scripts/Spells/spell_shaman.cpp | 20 ++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 sql/updates/world/4.3.4/2023_01_24_00_world.sql diff --git a/sql/updates/world/4.3.4/2023_01_24_00_world.sql b/sql/updates/world/4.3.4/2023_01_24_00_world.sql new file mode 100644 index 0000000000..69d9ee2e55 --- /dev/null +++ b/sql/updates/world/4.3.4/2023_01_24_00_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_proc` WHERE `SpellId`= 99207; +INSERT INTO `spell_proc` (`SpellId`, `SpellFamilyName`, `SpellFamilyMask1`, `SpellTypeMask`, `SpellPhaseMask`) VALUES +(99207, 11, 0x1000, 0x1, 0x1); diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index 73abf91a3d..db8cab004f 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -75,6 +75,7 @@ enum ShamanSpells SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD = 23552, SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD_DAMAGE = 27635, SPELL_SHAMAN_ITEM_MANA_SURGE = 23571, + SPELL_SHAMAN_ITEM_SHAMAN_T12_ELEMENTAL_4P = 99206, SPELL_SHAMAN_LIGHTNING_SHIELD = 324, SPELL_SHAMAN_LIGHTNING_SHIELD_DAMAGE = 26364, SPELL_SHAMAN_MAELSTROM_DUMMY = 60349, @@ -97,6 +98,7 @@ enum ShamanSpells SPELL_SHAMAN_UNLEASH_FROST = 73682, SPELL_SHAMAN_UNLEASH_FLAME = 73683, SPELL_SHAMAN_UNLEASH_EARTH = 73684, + SPELL_SHAMAN_VOLCANO = 99207, SPELL_SHAMAN_WATER_SHIELD = 52127, SPELL_SHAMAN_WINDFURY_ATTACK_MAINHAND = 25504, SPELL_SHAMAN_WINDFURY_ATTACK_OFFHAND = 33750, @@ -808,17 +810,21 @@ class spell_sha_lava_surge_proc : public SpellScript { bool Validate(SpellInfo const* /*spellInfo*/) override { - return ValidateSpellInfo({ SPELL_SHAMAN_LAVA_BURST }); - } - - bool Load() override - { - return GetCaster()->GetTypeId() == TYPEID_PLAYER; + return ValidateSpellInfo( + { + SPELL_SHAMAN_LAVA_BURST, + SPELL_SHAMAN_VOLCANO, + SPELL_SHAMAN_ITEM_SHAMAN_T12_ELEMENTAL_4P + }); } void HandleDummy(SpellEffIndex /*effIndex*/) { - GetCaster()->ToPlayer()->GetSpellHistory()->ResetCooldown(SPELL_SHAMAN_LAVA_BURST, true); + GetHitUnit()->GetSpellHistory()->ResetCooldown(SPELL_SHAMAN_LAVA_BURST, true); + // For some reason the aura is some weird mixture of being a proc while also not being one. + // Perhaps the aura got scrapped last minute and incorporated into Lava Surge. + if (GetHitUnit()->HasAura(SPELL_SHAMAN_ITEM_SHAMAN_T12_ELEMENTAL_4P)) + GetHitUnit()->CastSpell(nullptr, SPELL_SHAMAN_VOLCANO, true); } void Register() override