diff --git a/sql/mangos_spell_check.sql b/sql/mangos_spell_check.sql index d384aa7b6..211d8e1a7 100644 --- a/sql/mangos_spell_check.sql +++ b/sql/mangos_spell_check.sql @@ -403,7 +403,11 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas (54861,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Nitro Boosts', 'Spell::EffectDummy'), (55004, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Nitro Boosts', 'Spell::EffectDummy'), (55078,-1, -1, -1, -1, -1, -1, -1, 3,-1,'Blood Plague', 'Spell::EffectScriptEffect'), +(55090, 15,0x0800000000000000, -1, -1, -1, -1, -1, -1,-1,'Scourge Strike', 'Spell::DoAllEffectOnTarget'), (55095,-1, -1, -1, -1, -1, -1, -1, 3,-1,'Frost Fever', 'Spell::EffectScriptEffect'), +(55265, 15,0x0800000000000000, -1, -1, -1, -1, -1, -1,-1,'Scourge Strike', 'Spell::DoAllEffectOnTarget'), +(55270, 15,0x0800000000000000, -1, -1, -1, -1, -1, -1,-1,'Scourge Strike', 'Spell::DoAllEffectOnTarget'), +(55271, 15,0x0800000000000000, -1, -1, -1, -1, -1, -1,-1,'Scourge Strike', 'Spell::DoAllEffectOnTarget'), (55363,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Create Ghoul Drool Cover', 'Spell::EffectDummy'), (55364, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Create Ghoul Drool Cover', 'Spell::EffectDummy'), (55441,11, -1, -1, -1, -1, -1, -1, 4,-1,'Glyph of Mana Tide', 'Spell::EffectDummy'), @@ -530,6 +534,7 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas ( 0,11, -1, -1, 338, -1, -1, -1, 4, 1,'Restorative Totems', 'Spell::EffectSchoolDMG'), /*part 1*/ ( 0, 4,0x0000000000000400,0x00000000, -1, -1, -1, 2, -1,-1,'Revenge', 'Spell::EffectSchoolDMG'), ( 0,11,0x0000000000400000,0x00000000, -1, -1, -1, 54, -1,-1,'Rockbiter Weapon', 'Spell::EffectEnchantItemTmp'), +( 0,15,0x0800000000000000,0x00000000, -1, -1, -1, -1, -1,-1,'Scourge Strike', 'Spell::DoAllEffectOnTarget'), ( 0, 5,0x0040000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shadow Bite', 'Spell::EffectSchoolDMG'), ( 0, 6,0x0000000200000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shadow Word: Death', 'Spell::EffectSchoolDMG'), ( 0, 5,0x0000000000000000,0x00000002, -1, -1, -1, -1, 3,-1,'Shadowflame', 'Spell::EffectSchoolDMG'), /* dot */ diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index bd09db8a8..bd500206f 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1017,6 +1017,27 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) dummy->GetModifier()->m_amount = damageInfo.damage; caster->DealSpellDamage(&damageInfo, true); + + // Scourge Strike, here because needs to use final damage in second part of the spell + if (m_spellInfo->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT && m_spellInfo->SpellFamilyFlags & UI64LIT(0x0800000000000000)) + { + uint32 count = 0; + Unit::AuraMap const& auras = unitTarget->GetAuras(); + for(Unit::AuraMap::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr) + { + if(itr->second->GetSpellProto()->Dispel == DISPEL_DISEASE && + itr->second->GetCasterGUID() == caster->GetGUID() && + IsSpellLastAuraEffect(itr->second->GetSpellProto(), itr->second->GetEffIndex())) + ++count; + } + + if (count) + { + int32 bp = count * CalculateDamage(EFFECT_INDEX_2, unitTarget) * damageInfo.damage / 100; + if (bp) + caster->CastCustomSpell(unitTarget, 70890, &bp, NULL, NULL, true); + } + } } // Passive spell hits/misses or active spells only misses (only triggers) else diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index dd821f2e0..8048d526e 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -5065,9 +5065,9 @@ void Spell::EffectWeaponDmg(SpellEffectIndex eff_idx) case SPELLFAMILY_DEATHKNIGHT: { // Blood Strike, Heart Strike, Obliterate - // Blood-Caked Strike, Scourge Strike + // Blood-Caked Strike if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0002000001400000) || - m_spellInfo->SpellIconID == 1736 || m_spellInfo->SpellIconID == 3143) + m_spellInfo->SpellIconID == 1736) { uint32 count = 0; Unit::AuraMap const& auras = unitTarget->GetAuras(); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index a0b0cc286..4f0003a59 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9838" + #define REVISION_NR "9839" #endif // __REVISION_NR_H__