diff options
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 889633dccf6..e73f8ec80de 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9170,7 +9170,7 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 } } - // Custom scripted damage + // Custom scripted damage switch(spellProto->SpellFamilyName) { case SPELLFAMILY_MAGE: @@ -9183,18 +9183,16 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 // Torment the weak if (spellProto->SpellFamilyFlags[0]&0x20200021 || spellProto->SpellFamilyFlags[1]& 0x9000) - { if(pVictim->HasAuraType(SPELL_AURA_MOD_DECREASE_SPEED)) { AuraEffectList const& mDumyAuras = GetAurasByType(SPELL_AURA_DUMMY); for(AuraEffectList::const_iterator i = mDumyAuras.begin(); i != mDumyAuras.end(); ++i) if ((*i)->GetSpellProto()->SpellIconID == 3263) { - DoneTotalMod *=float((*i)->GetAmount() + 100.f) / 100.f; + DoneTotalMod *= float((*i)->GetAmount() + 100.f) / 100.f; break; } } - } break; // Glyph of Shadow Word: Pain case SPELLFAMILY_PRIEST: @@ -9209,7 +9207,7 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 break; case SPELLFAMILY_PALADIN: - // Judgement of Vengeance/ Judgement of Corruption + // Judgement of Vengeance/Judgement of Corruption if((spellProto->SpellFamilyFlags[1] & 0x400000) && spellProto->SpellIconID==2292) { // Get stack of Holy Vengeance/Blood Corruption on the target added by caster @@ -9226,19 +9224,31 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 DoneTotalMod *= (10.0f + (float)stacks) / 10.0f; } break; + case SPELLFAMILY_WARLOCK: + //Fire and Brimstone + if(spellProto->SpellFamilyFlags[1] & 0x00020040) + if(pVictim->HasAuraState(AURA_STATE_CONFLAGRATE)) + { + AuraEffectList const& mDumyAuras = GetAurasByType(SPELL_AURA_DUMMY); + for(AuraEffectList::const_iterator i = mDumyAuras.begin(); i != mDumyAuras.end(); ++i) + if ((*i)->GetSpellProto()->SpellIconID == 3173) + { + DoneTotalMod *= float((*i)->GetAmount() + 100.f) / 100.f; + break; + } + } + break; case SPELLFAMILY_DEATHKNIGHT: // Improved Icy Touch if (spellProto->SpellFamilyFlags[0] & 0x2) - { if (AuraEffect * aurEff = GetDummyAura(SPELLFAMILY_DEATHKNIGHT, 2721, 0)) - DoneTotalMod *= (100.0f + aurEff->GetAmount()) / 100.0f ; - } + DoneTotalMod *= (100.0f + aurEff->GetAmount()) / 100.0f; + // Glacier Rot if (spellProto->SpellFamilyFlags[0] & 0x2 || spellProto->SpellFamilyFlags[1] & 0x6) - { if (AuraEffect * aurEff = GetDummyAura(SPELLFAMILY_DEATHKNIGHT, 196, 0)) DoneTotalMod *= (100.0f + aurEff->GetAmount()) / 100.0f; - } + // This is not a typo - Impurity has SPELLFAMILY_DRUID if (AuraEffect * aurEff = GetDummyAura(SPELLFAMILY_DRUID, 1986, 0)) ApCoeffMod *= (100.0f + aurEff->GetAmount()) / 100.0f; |