aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormegamage <none@none>2008-12-21 18:57:48 -0600
committermegamage <none@none>2008-12-21 18:57:48 -0600
commitb32fc8f499a48bb6ed13d0c963c1263de15560fc (patch)
treeef081c3874d328e5f5196cb0d02d6c910c231047
parent409100869ca47996023af72df4a098740972638f (diff)
*Fix Spellmod_spell_bonus_damage. By thenecromancer.
--HG-- branch : trunk
-rw-r--r--src/game/Unit.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index ec0380f206b..85d9b3d5252 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -8859,14 +8859,18 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
float LvlPenalty = CalculateLevelPenalty(spellProto);
// Spellmod SpellDamage
- float SpellModSpellDamage = 100.0f;
+ //float SpellModSpellDamage = 100.0f;
+ float CoefficientPtc = ((float)CastingTime/3500.0f)*DotFactor*100.0f;
if(Player* modOwner = GetSpellModOwner())
- modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,SpellModSpellDamage);
+ //modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,SpellModSpellDamage);
+ modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,CoefficientPtc);
- SpellModSpellDamage /= 100.0f;
+ //SpellModSpellDamage /= 100.0f;
+ CoefficientPtc /= 100.0f;
- float DoneActualBenefit = DoneAdvertisedBenefit * (CastingTime / 3500.0f) * DotFactor * SpellModSpellDamage * LvlPenalty;
+ //float DoneActualBenefit = DoneAdvertisedBenefit * (CastingTime / 3500.0f) * DotFactor * SpellModSpellDamage * LvlPenalty;
+ float DoneActualBenefit = DoneAdvertisedBenefit * CoefficientPtc * LvlPenalty;
float TakenActualBenefit = TakenAdvertisedBenefit;
if(spellProto->SpellFamilyName)
TakenActualBenefit *= (CastingTime / 3500.0f) * DotFactor * LvlPenalty;
@@ -9204,14 +9208,18 @@ uint32 Unit::SpellHealingBonus(SpellEntry const *spellProto, uint32 healamount,
float LvlPenalty = CalculateLevelPenalty(spellProto);
// Spellmod SpellDamage
- float SpellModSpellDamage = 100.0f;
+ //float SpellModSpellDamage = 100.0f;
+ float CoefficientPtc = ((float)CastingTime/3500.0f)*DotFactor*100.0f;
if(Player* modOwner = GetSpellModOwner())
- modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,SpellModSpellDamage);
+ //modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,SpellModSpellDamage);
+ modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,CoefficientPtc);
- SpellModSpellDamage /= 100.0f;
+ //SpellModSpellDamage /= 100.0f;
+ CoefficientPtc /= 100.0f;
- ActualBenefit = (float)AdvertisedBenefit * ((float)CastingTime / 3500.0f) * DotFactor * SpellModSpellDamage * LvlPenalty;
+ //ActualBenefit = (float)AdvertisedBenefit * ((float)CastingTime / 3500.0f) * DotFactor * SpellModSpellDamage * LvlPenalty;
+ float ActualBenefit = (float)AdvertisedBenefit * CoefficientPtc * LvlPenalty;
}
// use float as more appropriate for negative values and percent applying