aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/SpellEffects.cpp')
-rw-r--r--src/game/SpellEffects.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 91c1bec605e..dbdef569a5c 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -2420,13 +2420,6 @@ void Spell::SpellDamageHeal(uint32 /*i*/)
sLog.outError("Target(GUID:" I64FMTD ") has aurastate AURA_STATE_SWIFTMEND but no matching aura.", unitTarget->GetGUID());
return;
}
- int idx = 0;
- while(idx < 3)
- {
- if(targetAura->GetSpellProto()->EffectApplyAuraName[idx] == SPELL_AURA_PERIODIC_HEAL)
- break;
- idx++;
- }
int32 tickheal = targetAura->GetModifierValuePerStack();
if(Unit* auraCaster = targetAura->GetCaster())
@@ -2434,7 +2427,15 @@ void Spell::SpellDamageHeal(uint32 /*i*/)
//int32 tickheal = targetAura->GetSpellProto()->EffectBasePoints[idx] + 1;
//It is said that talent bonus should not be included
//int32 tickheal = targetAura->GetModifierValue();
- int32 tickcount = GetSpellDuration(targetAura->GetSpellProto()) / targetAura->GetSpellProto()->EffectAmplitude[idx];
+ int32 tickcount = 0;
+ if(targetAura->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID)
+ {
+ switch(targetAura->GetSpellProto()->SpellFamilyFlags)//TODO: proper spellfamily for 3.0.x
+ {
+ case 0x10: tickcount = 4; break; // Rejuvenation
+ case 0x40: tickcount = 6; break; // Regrowth
+ }
+ }
addhealth += tickheal * tickcount;
unitTarget->RemoveAurasDueToCasterSpell(targetAura->GetId(), targetAura->GetCasterGUID());