diff --git a/src/ts/app/utils/calculator.ts b/src/ts/app/utils/calculator.ts index da50a9f..9d0ed14 100644 --- a/src/ts/app/utils/calculator.ts +++ b/src/ts/app/utils/calculator.ts @@ -4,10 +4,12 @@ import { IBaseStats } from 'app/models/Pokemon'; const calculateStatsFormula = (baseStats : IBaseStats, ivHp : number, ivAtk : number, ivDef : number) => Math.sqrt(baseStats.baseStamina + ivHp) * Math.sqrt(baseStats.baseDefense + ivDef) * (baseStats.baseAttack + ivAtk); +const calculateCpByLevelMultiplier = (statsFormula : number, levelMultiplier : number) => Math.floor((statsFormula * Math.pow(levelMultiplier, 2)) / 10); + export const calculateCp = (baseStats : IBaseStats, level : number, ivHp : number, ivAtk : number, ivDef : number) => { const statsFormula = calculateStatsFormula(baseStats, ivHp, ivAtk, ivDef); const levelMultiplier = LevelMultipliers[(level - 1) * 2]; - const cp = Math.floor((statsFormula * Math.pow(levelMultiplier, 2)) / 10); + const cp = calculateCpByLevelMultiplier(statsFormula, levelMultiplier); return cp; }; @@ -22,8 +24,7 @@ export const calculateMaxLevelForLeague = (baseStats : IBaseStats, ivHp : number const statsFormula = calculateStatsFormula(baseStats, ivHp, ivAtk, ivDef); let level = 1; for (let i = LevelMultipliers.length - 1; i >= 0; i--) { - const levelMultiplier = LevelMultipliers[i]; - const cp = Math.floor((statsFormula * Math.pow(levelMultiplier, 2)) / 10); + const cp = calculateCpByLevelMultiplier(statsFormula, LevelMultipliers[i]); if (cp <= maxCp) { level = (i / 2) + 1; break;