[7200] Fix spell damage bonuses in some cases

Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
DiSlord 2009-01-29 21:57:03 +03:00
parent b6a2f2ece2
commit b798beeec6
2 changed files with 13 additions and 5 deletions

View file

@ -7332,8 +7332,8 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
// Taken/Done total percent damage auras // Taken/Done total percent damage auras
float DoneTotalMod = 1.0f; float DoneTotalMod = 1.0f;
float TakenTotalMod = 1.0f; float TakenTotalMod = 1.0f;
uint32 DoneTotal = 0; int32 DoneTotal = 0;
uint32 TakenTotal = 0; int32 TakenTotal = 0;
// ..done // ..done
// Pet damage // Pet damage
@ -7520,6 +7520,14 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
} }
} }
// Custom scripted damage
// Ice Lance
if (spellProto->SpellFamilyName == SPELLFAMILY_MAGE && spellProto->SpellIconID == 186)
{
if (pVictim->isFrozen())
DoneTotalMod *= 3.0f;
}
// ..taken // ..taken
AuraList const& mModDamagePercentTaken = pVictim->GetAurasByType(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN); AuraList const& mModDamagePercentTaken = pVictim->GetAurasByType(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN);
for(AuraList::const_iterator i = mModDamagePercentTaken.begin(); i != mModDamagePercentTaken.end(); ++i) for(AuraList::const_iterator i = mModDamagePercentTaken.begin(); i != mModDamagePercentTaken.end(); ++i)
@ -7883,8 +7891,8 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint
// Taken/Done total percent damage auras // Taken/Done total percent damage auras
float DoneTotalMod = 1.0f; float DoneTotalMod = 1.0f;
float TakenTotalMod = 1.0f; float TakenTotalMod = 1.0f;
uint32 DoneTotal = 0; int32 DoneTotal = 0;
uint32 TakenTotal = 0; int32 TakenTotal = 0;
// Healing done percent // Healing done percent
AuraList const& mHealingDonePct = GetAurasByType(SPELL_AURA_MOD_HEALING_DONE_PERCENT); AuraList const& mHealingDonePct = GetAurasByType(SPELL_AURA_MOD_HEALING_DONE_PERCENT);

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "7199" #define REVISION_NR "7200"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__