mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 18:57:03 +02:00
feat: remove textual reference
This commit is contained in:
1 parent
2b354770c7
commit
b5188331bd
3 files changed
+35
-34
No files matched your search
@@ -0,0 +1,35 @@
|
||||
import { sumBy } from 'lodash';
|
||||
import { use, useMemo } from 'react';
|
||||
import {
|
||||
TankDefinition,
|
||||
tankDefinitions,
|
||||
} from '../core/blitzkrieg/tankDefinitions';
|
||||
import { useDuel } from '../stores/duel';
|
||||
|
||||
export enum UseEccentricityMode {
|
||||
Tier,
|
||||
Class,
|
||||
}
|
||||
|
||||
export function useEccentricity(mode: UseEccentricityMode) {
|
||||
const awaitedTankDefinitions = use(tankDefinitions);
|
||||
const tank = useDuel((state) => state.protagonist!.tank);
|
||||
const similarTanks = useMemo(
|
||||
() =>
|
||||
Object.values(awaitedTankDefinitions).filter(
|
||||
(tankB) =>
|
||||
tank.tier === tankB.tier &&
|
||||
(mode === UseEccentricityMode.Class
|
||||
? tank.class === tankB.class
|
||||
: true),
|
||||
),
|
||||
[tank.id],
|
||||
);
|
||||
|
||||
function eccentricity(property: (tank: TankDefinition) => number) {
|
||||
const average = sumBy(similarTanks, property) / similarTanks.length;
|
||||
return property(tank) / average;
|
||||
}
|
||||
|
||||
return eccentricity;
|
||||
}
|
||||
Reference in new issue
Block a user