diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 6 | 
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);      }  | 
