From 1149fbce3de6d46edeadd778d2d153b1960555bb Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Wed, 12 Jan 2022 17:57:41 +0100 Subject: [PATCH] Core/Spells: revert an unwanted change that sneaked into 9085526f9ab0f8e418c4b8cc1d506f5f571bb025 --- src/server/game/Spells/SpellEffects.cpp | 27 ++++++++++++------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index e164d54a25c..8252a1d2d99 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -346,16 +346,27 @@ void Spell::EffectEnvironmentalDMG(SpellEffIndex /*effIndex*/) void Spell::EffectSchoolDMG(SpellEffIndex effIndex) { - if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET && effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH) + if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET) return; - if (effectHandleMode == SPELL_EFFECT_HANDLE_LAUNCH_TARGET && unitTarget && unitTarget->IsAlive()) + if (unitTarget && unitTarget->IsAlive()) { bool apply_direct_bonus = true; switch (m_spellInfo->SpellFamilyName) { case SPELLFAMILY_GENERIC: { + // Meteor like spells (divided damage to targets) + if (m_spellInfo->HasAttribute(SPELL_ATTR0_CU_SHARE_DAMAGE)) + { + uint32 count = 0; + for (std::list::iterator ihit= m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) + if (ihit->effectMask & (1<Id) // better way to check unknown { // Consumption @@ -424,18 +435,6 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex) m_damage += damage; } - - // Some spells, such as meteor spells, share their damage among all potential targets - if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH == m_spellInfo->HasAttribute(SPELL_ATTR0_CU_SHARE_DAMAGE)) - { - uint32 count = 0; - for (TargetInfo const& targetInfo : m_UniqueTargetInfo) - if (targetInfo.effectMask & (1 << effIndex)) - ++count; - - if (count) - damage /= count; - } } void Spell::EffectDummy(SpellEffIndex effIndex)