From da69c12356442fc3d51cebca2818ce5f405be644 Mon Sep 17 00:00:00 2001 From: Jeff Colombo Date: Sun, 10 Feb 2019 12:05:16 -0500 Subject: [PATCH] DRY out calculator --- src/ts/app/utils/calculator.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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;