mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 10:47:04 +02:00
fix: gun-specific shell discrimination
This commit is contained in:
1 parent
f16511a72e
commit
8a5b0c1170
1 file changed
+13
-20
@@ -1,6 +1,9 @@
|
|||||||
import type { TankDefinition } from '@blitzkit/core';
|
import type { TankDefinition } from '@blitzkit/core';
|
||||||
|
import { times } from 'lodash-es';
|
||||||
import type { TankFilters } from '../../stores/tankFilters';
|
import type { TankFilters } from '../../stores/tankFilters';
|
||||||
|
|
||||||
|
const SHELLS = times(3, (index) => index);
|
||||||
|
|
||||||
export function filterTank(filters: TankFilters, tank: TankDefinition) {
|
export function filterTank(filters: TankFilters, tank: TankDefinition) {
|
||||||
return (
|
return (
|
||||||
(filters.tiers.length === 0 || filters.tiers.includes(tank.tier)) &&
|
(filters.tiers.length === 0 || filters.tiers.includes(tank.tier)) &&
|
||||||
@@ -23,26 +26,16 @@ export function filterTank(filters: TankFilters, tank: TankDefinition) {
|
|||||||
tank.turrets.some((turret) =>
|
tank.turrets.some((turret) =>
|
||||||
turret.guns.some((gun) => gun.gun_type!.$case === 'auto_reloader'),
|
turret.guns.some((gun) => gun.gun_type!.$case === 'auto_reloader'),
|
||||||
))) &&
|
))) &&
|
||||||
(filters.shells[0] === null ||
|
tank.turrets.some((turret) =>
|
||||||
tank.turrets.some((turret) =>
|
turret.guns.some((gun) =>
|
||||||
turret.guns.some(
|
SHELLS.every(
|
||||||
(gun) =>
|
(index) =>
|
||||||
gun.gun_type!.value.base.shells[0]?.type === filters.shells[0],
|
filters.shells[index] === null ||
|
||||||
|
gun.gun_type!.value.base.shells[index] === undefined ||
|
||||||
|
gun.gun_type!.value.base.shells[index].type ===
|
||||||
|
filters.shells[index],
|
||||||
),
|
),
|
||||||
)) &&
|
),
|
||||||
(filters.shells[1] === null ||
|
)
|
||||||
tank.turrets.some((turret) =>
|
|
||||||
turret.guns.some(
|
|
||||||
(gun) =>
|
|
||||||
gun.gun_type!.value.base.shells[1]?.type === filters.shells[1],
|
|
||||||
),
|
|
||||||
)) &&
|
|
||||||
(filters.shells[2] === null ||
|
|
||||||
tank.turrets.some((turret) =>
|
|
||||||
turret.guns.some(
|
|
||||||
(gun) =>
|
|
||||||
gun.gun_type!.value.base.shells[2]?.type === filters.shells[2],
|
|
||||||
),
|
|
||||||
))
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user