Fix lvl 99 bug
This commit is contained in:
+10
-7
@@ -11,8 +11,8 @@ import { Activity, Attribute, attributes, ActivityPerformance, getActivityAttrib
|
||||
//
|
||||
|
||||
type LevelCalculatorConfig = {
|
||||
compressTo?: number;
|
||||
expandIters?: number;
|
||||
compressTo?: number;
|
||||
}
|
||||
|
||||
type LevelCalculatorOutput = {
|
||||
@@ -26,8 +26,8 @@ export class LevelCalculator {
|
||||
|
||||
public constructor(standards: Standards, cfg: LevelCalculatorConfig = {}) {
|
||||
this.cfg = {
|
||||
compressTo: cfg.compressTo ?? 100,
|
||||
expandIters: cfg.expandIters ?? 5
|
||||
expandIters: cfg.expandIters ?? 5,
|
||||
compressTo: cfg.compressTo ?? 100
|
||||
}
|
||||
this.standards = standards;
|
||||
}
|
||||
@@ -183,11 +183,13 @@ export class LevelCalculator {
|
||||
if (Object.keys(lower).length !== Object.keys(upper).length)
|
||||
throw new Error("Cannot interpolate between varying number of levels");
|
||||
|
||||
function lerp(lvl: number): number {
|
||||
return (lower[lvl] as number) + ((upper[lvl] as number) - (lower[lvl] as number)) * ratio;
|
||||
const lerp = (lvl: string) => (lower[lvl] as number) + ((upper[lvl] as number) - (lower[lvl] as number)) * ratio;
|
||||
|
||||
const interpolatedLevels = {};
|
||||
for (const lvl in lower) {
|
||||
interpolatedLevels[lvl] = lerp(lvl);
|
||||
}
|
||||
|
||||
const interpolatedLevels = Object.keys(lower).map(lvl => lerp(+lvl));
|
||||
return interpolatedLevels;
|
||||
}
|
||||
|
||||
@@ -282,8 +284,9 @@ export class Standards {
|
||||
levels: Levels,
|
||||
i: number
|
||||
): Levels {
|
||||
if (i == 0)
|
||||
if (i == 0) {
|
||||
return levels;
|
||||
}
|
||||
|
||||
const newLevels = {};
|
||||
let j = 1;
|
||||
|
||||
+8
-8
@@ -4,8 +4,8 @@ import rawStandards from "../data/standards.json" assert { type: "json" }
|
||||
|
||||
const player: Player = {
|
||||
metrics: {
|
||||
age: 18,
|
||||
weight: lbToKg(200),
|
||||
age: 25,
|
||||
weight: lbToKg(190),
|
||||
gender: genders.MALE
|
||||
}
|
||||
};
|
||||
@@ -14,30 +14,30 @@ const computedPerformances: ActivityPerformance[] = [
|
||||
// STRENGTH
|
||||
{
|
||||
activity: activities.BENCH_PRESS,
|
||||
performance: lbToKg(200)
|
||||
performance: lbToKg(225)
|
||||
},
|
||||
{
|
||||
activity: activities.DEADLIFT,
|
||||
performance: lbToKg(200),
|
||||
performance: lbToKg(270),
|
||||
},
|
||||
{
|
||||
activity: activities.BACK_SQUAT,
|
||||
performance: lbToKg(200),
|
||||
performance: lbToKg(190),
|
||||
},
|
||||
// POWER
|
||||
{
|
||||
activity: activities.BROAD_JUMP,
|
||||
performance: feetToCm(10) + inchesToCm(2),
|
||||
performance: feetToCm(105) + inchesToCm(5),
|
||||
},
|
||||
// ENDURANCE
|
||||
{
|
||||
activity: activities.RUN,
|
||||
performance: minToMs(5) + secToMs(20),
|
||||
performance: minToMs(7) + secToMs(15),
|
||||
},
|
||||
// AGILITY
|
||||
{
|
||||
activity: activities.CONE_DRILL,
|
||||
performance: secToMs(5),
|
||||
performance: secToMs(9),
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
+1
-1
@@ -73,7 +73,7 @@ export interface ActivityPerformance {
|
||||
performance: number;
|
||||
}
|
||||
|
||||
export type Levels = Record<number, number>
|
||||
export type Levels = Record<string, number>
|
||||
|
||||
export interface Metrics {
|
||||
age: number;
|
||||
|
||||
Reference in New Issue
Block a user