Added ability to filter tanks by available provisions

This commit is contained in:
Mark Greene committed 2025-12-30 20:45:44 +13:00
1 parent b479c09cf8
commit b6204b1c2c
3 files changed
+186 -2

No files matched your search

@@ -1,8 +1,11 @@
import type { TankDefinition } from "@blitzkit/core";
import { checkConsumableProvisionInclusivity } from "@blitzkit/core/src/blitzkit/checkConsumableProvisionInclusivity";
import { times } from "lodash-es";
import { awaitableConsumableDefinitions } from "../../core/awaitables/consumableDefinitions";
import type { TankFilters } from "../../stores/tankFilters";
const SHELLS = times(3, (index) => index);
const consumableDefinitions = await awaitableConsumableDefinitions;
export async function filterTank(
filters: TankFilters,
@@ -40,6 +43,18 @@ export async function filterTank(
gun.shells[index].type === filters.shells[index]
)
)
)
) &&
(filters.consumables.length === 0 ||
filters.consumables.every((consumableId) =>
tank.turrets.some((turret) =>
turret.guns.some((gun) =>
checkConsumableProvisionInclusivity(
consumableDefinitions.consumables[consumableId],
tank,
gun
)
)
)
))
);
}