aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxinef1 <w.szyszko2@gmail.com>2017-02-19 06:30:04 +0100
committerariel- <ariel-@users.noreply.github.com>2017-02-19 02:30:04 -0300
commit9142c778dd861eda188ba868433af05038c4e13c (patch)
treebcf6a1e2958de7f353130aa6d26e8c513b46dd21 /src
parente261754c9cd8b14a0555e866b4e193e1fe3c25ae (diff)
Corrected points per level calculation for some spells (#19105)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/SpellInfo.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index a5df6218e83..1a3b58afa83 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -411,14 +411,16 @@ int32 SpellEffectInfo::CalcValue(Unit const* caster, int32 const* bp, Unit const
int32 randomPoints = int32(DieSides);
// base amount modification based on spell lvl vs caster lvl
- if (caster)
+ if (caster && basePointsPerLevel != 0.0f)
{
int32 level = int32(caster->getLevel());
if (level > int32(_spellInfo->MaxLevel) && _spellInfo->MaxLevel > 0)
level = int32(_spellInfo->MaxLevel);
else if (level < int32(_spellInfo->BaseLevel))
level = int32(_spellInfo->BaseLevel);
- level -= int32(_spellInfo->SpellLevel);
+
+ // if base level is greater than spell level, reduce by base level (eg. pilgrims foods)
+ level -= int32(std::max(_spellInfo->BaseLevel, _spellInfo->SpellLevel));
basePoints += int32(level * basePointsPerLevel);
}