[9355] Spell 50464 bonuses dependent from amount HoT types at target, not stack size of this HoTs.

Thanks to LordJZ for research.
This commit is contained in:
VladimirMangos 2010-02-11 01:27:06 +03:00
parent 0f7f7c5ada
commit 6f2bd19b43
2 changed files with 5 additions and 5 deletions

View file

@ -9437,13 +9437,13 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint
{ {
int32 stepPercent = (*i)->GetModifier()->m_amount; int32 stepPercent = (*i)->GetModifier()->m_amount;
int ownHotCount = 0; int ownHotCount = 0; // counted HoT types amount, not stacks
Unit::AuraList const& RejorRegr = pVictim->GetAurasByType(SPELL_AURA_PERIODIC_HEAL); Unit::AuraList const& RejorRegr = pVictim->GetAurasByType(SPELL_AURA_PERIODIC_HEAL);
for(Unit::AuraList::const_iterator i = RejorRegr.begin(); i != RejorRegr.end(); ++i) for(Unit::AuraList::const_iterator i = RejorRegr.begin(); i != RejorRegr.end(); ++i)
if ((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID && if ((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID &&
(*i)->GetCasterGUID() == GetGUID()) (*i)->GetCasterGUID() == GetGUID())
ownHotCount += (*i)->GetStackAmount(); ++ownHotCount;
if (ownHotCount) if (ownHotCount)
TakenTotalMod *= (stepPercent * ownHotCount + 100.0f) / 100.0f; TakenTotalMod *= (stepPercent * ownHotCount + 100.0f) / 100.0f;
@ -9539,12 +9539,12 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint
// Nourish 20% of heal increase if target is affected by Druids HOTs // Nourish 20% of heal increase if target is affected by Druids HOTs
else if (spellProto->SpellFamilyName == SPELLFAMILY_DRUID && (spellProto->SpellFamilyFlags & UI64LIT(0x0200000000000000))) else if (spellProto->SpellFamilyName == SPELLFAMILY_DRUID && (spellProto->SpellFamilyFlags & UI64LIT(0x0200000000000000)))
{ {
int ownHotCount = 0; int ownHotCount = 0; // counted HoT types amount, not stacks
Unit::AuraList const& RejorRegr = pVictim->GetAurasByType(SPELL_AURA_PERIODIC_HEAL); Unit::AuraList const& RejorRegr = pVictim->GetAurasByType(SPELL_AURA_PERIODIC_HEAL);
for(Unit::AuraList::const_iterator i = RejorRegr.begin(); i != RejorRegr.end(); ++i) for(Unit::AuraList::const_iterator i = RejorRegr.begin(); i != RejorRegr.end(); ++i)
if ((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID && if ((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID &&
(*i)->GetCasterGUID() == GetGUID()) (*i)->GetCasterGUID() == GetGUID())
ownHotCount += (*i)->GetStackAmount(); ++ownHotCount;
if (ownHotCount) if (ownHotCount)
{ {

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 "9354" #define REVISION_NR "9355"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__