diff options
author | megamage <none@none> | 2008-12-21 18:57:48 -0600 |
---|---|---|
committer | megamage <none@none> | 2008-12-21 18:57:48 -0600 |
commit | b32fc8f499a48bb6ed13d0c963c1263de15560fc (patch) | |
tree | ef081c3874d328e5f5196cb0d02d6c910c231047 /src | |
parent | 409100869ca47996023af72df4a098740972638f (diff) |
*Fix Spellmod_spell_bonus_damage. By thenecromancer.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Unit.cpp | 24 |
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 |