diff --git a/app/modules/analyzer/stats.ts b/app/modules/analyzer/stats.ts index d0c18744c..99499d20e 100644 --- a/app/modules/analyzer/stats.ts +++ b/app/modules/analyzer/stats.ts @@ -1,8 +1,6 @@ +import type { MainWeaponId } from "~/modules/in-game-lists"; import type { - BuildAbilitiesTupleWithUnknown, - MainWeaponId, -} from "~/modules/in-game-lists"; -import type { + AbilityPoints, AnalyzedBuild, DamageType, InkConsumeType, @@ -13,20 +11,15 @@ import type { import { DAMAGE_TYPE } from "./types"; import { INK_CONSUME_TYPES } from "./types"; import invariant from "tiny-invariant"; -import { - abilityPointsToEffects, - apFromMap, - buildToAbilityPoints, - weaponParams, -} from "./utils"; +import { abilityPointsToEffects, apFromMap, weaponParams } from "./utils"; import { assertUnreachable } from "~/utils/types"; import { semiRandomId } from "~/utils/strings"; export function buildStats({ - build, + abilityPoints, weaponSplId, }: { - build: BuildAbilitiesTupleWithUnknown; + abilityPoints: AbilityPoints; weaponSplId: MainWeaponId; }): AnalyzedBuild { const mainWeaponParams = weaponParams().mainWeapons[weaponSplId]; @@ -42,7 +35,7 @@ export function buildStats({ const input: StatFunctionInput = { mainWeaponParams, subWeaponParams, - abilityPoints: buildToAbilityPoints(build), + abilityPoints, }; return { diff --git a/app/modules/analyzer/useAnalyzeBuild.ts b/app/modules/analyzer/useAnalyzeBuild.ts index 00c75e283..18e68b078 100644 --- a/app/modules/analyzer/useAnalyzeBuild.ts +++ b/app/modules/analyzer/useAnalyzeBuild.ts @@ -9,6 +9,7 @@ import { } from "../in-game-lists"; import type { AbilityType, AbilityWithUnknown } from "../in-game-lists/types"; import { buildStats } from "./stats"; +import { buildToAbilityPoints } from "./utils"; const UNKNOWN_SHORT = "U"; @@ -26,9 +27,18 @@ export function useAnalyzeBuild() { weapon: String(mainWeaponId), }); + const abilityPoints = React.useMemo( + () => buildToAbilityPoints(build), + [build] + ); + const analyzed = React.useMemo( - () => buildStats({ build, weaponSplId: mainWeaponId }), - [build, mainWeaponId] + () => + buildStats({ + abilityPoints, + weaponSplId: mainWeaponId, + }), + [abilityPoints, mainWeaponId] ); return { @@ -37,6 +47,7 @@ export function useAnalyzeBuild() { mainWeaponId, setMainWeaponId, analyzed, + abilityPoints, }; }