DRY out calculator
This commit is contained in:
parent
e39c660578
commit
da69c12356
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user