mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 18:57:03 +02:00
feat: more stats 2
This commit is contained in:
1 parent
948ea0bb8d
commit
b929e9449d
2 files changed
+54
-16
No files matched your search
@@ -15,14 +15,12 @@ import PageWrapper from '../../../components/PageWrapper';
|
||||
import { equipmentDefinitions } from '../../../core/blitzkrieg/equipmentDefinitions';
|
||||
import { modelDefinitions } from '../../../core/blitzkrieg/modelDefinitions';
|
||||
import { provisionDefinitions } from '../../../core/blitzkrieg/provisionDefinitions';
|
||||
import { skillDefinitions } from '../../../core/blitzkrieg/skillDefinitions';
|
||||
import { tankCharacteristics } from '../../../core/blitzkrieg/tankCharacteristics';
|
||||
import { tankDefinitions } from '../../../core/blitzkrieg/tankDefinitions';
|
||||
import { tankIcon } from '../../../core/blitzkrieg/tankIcon';
|
||||
import { tankToCompareMember } from '../../../core/blitzkrieg/tankToCompareMember';
|
||||
import mutateCompare, {
|
||||
CompareMember,
|
||||
useCompare,
|
||||
} from '../../../stores/compare';
|
||||
import mutateCompare, { useCompare } from '../../../stores/compare';
|
||||
import { TankSearch } from '../tankopedia/components/TankSearch';
|
||||
import { TankControl } from './components/TankControl';
|
||||
|
||||
@@ -30,6 +28,7 @@ export default function Page() {
|
||||
const pathname = usePathname();
|
||||
const router = useRouter();
|
||||
const awaitedTankDefinitions = use(tankDefinitions);
|
||||
const awaitedSkillDefinitions = use(skillDefinitions);
|
||||
const searchParams = useSearchParams();
|
||||
const members = useCompare((state) => state.members);
|
||||
const [addTankDialogOpen, setAddTankDialogOpen] = useState(false);
|
||||
@@ -87,11 +86,11 @@ export default function Page() {
|
||||
draft.members = tanksParam
|
||||
.split(',')
|
||||
.map(Number)
|
||||
.map(
|
||||
(id) =>
|
||||
tankToCompareMember(
|
||||
awaitedTankDefinitions[id],
|
||||
) satisfies CompareMember,
|
||||
.map((id) =>
|
||||
tankToCompareMember(
|
||||
awaitedTankDefinitions[id],
|
||||
awaitedSkillDefinitions,
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
@@ -147,7 +146,10 @@ export default function Page() {
|
||||
textAlign: 'center',
|
||||
}}
|
||||
color={
|
||||
index === 0 || value === undefined || values[0] === undefined
|
||||
index === 0 ||
|
||||
value === undefined ||
|
||||
values[0] === undefined ||
|
||||
value > values[0]
|
||||
? undefined
|
||||
: (
|
||||
deltaType === 'higherIsBetter'
|
||||
@@ -205,7 +207,9 @@ export default function Page() {
|
||||
compact
|
||||
onSelect={(tank) => {
|
||||
mutateCompare((draft) => {
|
||||
draft.members.push(tankToCompareMember(tank));
|
||||
draft.members.push(
|
||||
tankToCompareMember(tank, awaitedSkillDefinitions),
|
||||
);
|
||||
});
|
||||
|
||||
setAddTankDialogOpen(false);
|
||||
@@ -309,17 +313,41 @@ export default function Page() {
|
||||
value="dispersion"
|
||||
display={(stats) => stats.dispersion.toFixed(3)}
|
||||
/>
|
||||
<Row name="Dispersion moving" value="dispersionMoving" />
|
||||
<Row
|
||||
name="Dispersion moving"
|
||||
value="dispersionMoving"
|
||||
display={(stats) => stats.dispersionMoving.toFixed(3)}
|
||||
/>
|
||||
<Row
|
||||
name="Dispersion hull traversing"
|
||||
value="dispersionHullTraversing"
|
||||
display={(stats) => stats.dispersionHullTraversing.toFixed(3)}
|
||||
/>
|
||||
<Row
|
||||
name="Dispersion turret traversing"
|
||||
value="dispersionTurretTraversing"
|
||||
display={(stats) => stats.dispersionTurretTraversing.toFixed(3)}
|
||||
/>
|
||||
<Row
|
||||
name="Dispersion shooting"
|
||||
value="dispersionShooting"
|
||||
display={(stats) => stats.dispersionShooting.toFixed(3)}
|
||||
/>
|
||||
<Row
|
||||
name="Dispersion gun damaged"
|
||||
value="dispersionGunDamaged"
|
||||
display={(stats) => stats.dispersionGunDamaged.toFixed(3)}
|
||||
/>
|
||||
<Row
|
||||
name="Gun depression"
|
||||
value="gunDepression"
|
||||
display={(stats) => stats.gunDepression.toFixed(1)}
|
||||
/>
|
||||
<Row
|
||||
name="Gun elevation"
|
||||
value="gunElevation"
|
||||
display={(stats) => stats.gunElevation.toFixed(1)}
|
||||
/>
|
||||
<Row name="Dispersion shooting" value="dispersionShooting" />
|
||||
<Row name="Dispersion gun damaged" value="dispersionGunDamaged" />
|
||||
</Table.Body>
|
||||
</Table.Root>
|
||||
</Flex>
|
||||
|
||||
@@ -1,12 +1,22 @@
|
||||
import { CompareMember } from '../../stores/compare';
|
||||
import { SkillDefinitions } from './skillDefinitions';
|
||||
import { TankDefinition } from './tankDefinitions';
|
||||
import { tankToDuelMember } from './tankToDuelMember';
|
||||
|
||||
export function tankToCompareMember(tank: TankDefinition) {
|
||||
export function tankToCompareMember(
|
||||
tank: TankDefinition,
|
||||
skillDefinitions: SkillDefinitions,
|
||||
) {
|
||||
const member = {
|
||||
...tankToDuelMember(tank),
|
||||
crewSkills: {},
|
||||
} satisfies CompareMember;
|
||||
} as CompareMember;
|
||||
|
||||
Object.values(skillDefinitions.classes).forEach((skills) => {
|
||||
skills.forEach((skill) => {
|
||||
member.crewSkills[skill] = 0;
|
||||
});
|
||||
});
|
||||
|
||||
return member;
|
||||
}
|
||||
Reference in new issue
Block a user