diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index baaf3f1af..c310b5e53 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -502,10 +502,13 @@ int32 SpellEffectInfo::CalcValue(Unit const* caster, int32 const* bp, Unit const if (canEffectScale) { - GtNPCManaCostScalerEntry const* spellScaler = sGtNPCManaCostScalerStore.LookupEntry(_spellInfo->SpellLevel - 1); - GtNPCManaCostScalerEntry const* casterScaler = sGtNPCManaCostScalerStore.LookupEntry(caster->GetLevel() - 1); - if (spellScaler && casterScaler) - value *= casterScaler->ratio / spellScaler->ratio; + CreatureTemplate const* cInfo = caster->ToCreature()->GetCreatureTemplate(); + + CreatureBaseStats const* pCBS = sObjectMgr->GetCreatureBaseStats(caster->GetLevel(), caster->getClass()); + float CBSPowerCreature = pCBS->BaseDamage[cInfo->expansion]; + CreatureBaseStats const* spellCBS = sObjectMgr->GetCreatureBaseStats(_spellInfo->SpellLevel, caster->getClass()); + float CBSPowerSpell = spellCBS->BaseDamage[cInfo->expansion]; + value *= CBSPowerCreature / CBSPowerSpell; } } }