diff --git a/scripts/buildAssets/definitions.ts b/scripts/buildAssets/definitions.ts index d150c36c0..5ad93e806 100644 --- a/scripts/buildAssets/definitions.ts +++ b/scripts/buildAssets/definitions.ts @@ -23,8 +23,10 @@ import { import { ProvisionDefinitions } from '../../src/core/blitzkrieg/provisionDefinitions'; import { superCompress } from '../../src/core/blitzkrieg/superCompress'; import { + CrewMember, GunDefinition, ShellType, + TankDefinition, TankDefinitionPrice, TankDefinitions, Tier, @@ -84,6 +86,7 @@ interface VehicleDefinitions { still: number; firePenalty: number; }; + crew: Record; speedLimits: { forward: number; backward: number; @@ -436,9 +439,21 @@ export async function definitions(production: boolean) { hullArmor.spaced.push(armorId); } }); + const crew: TankDefinition['crew'] = {}; + + Object.entries(tankDefinition.root.crew).forEach(([key, value]) => { + if (!(key in crew)) crew[key as CrewMember] = 0; + + if (typeof value === 'string') { + crew[key as CrewMember]!++; + } else { + crew[key as CrewMember]! += value.length; + } + }); tankDefinitions[tankId] = { id: tankId, + crew, weight: tankDefinition.root.hull.weight, health: tankDefinition.root.hull.maxHealth, speed: { diff --git a/src/core/blitzkrieg/tankDefinitions.ts b/src/core/blitzkrieg/tankDefinitions.ts index 84e3f1860..155b503f8 100644 --- a/src/core/blitzkrieg/tankDefinitions.ts +++ b/src/core/blitzkrieg/tankDefinitions.ts @@ -13,9 +13,16 @@ export const SHELL_NAMES: Record = { he: 'HE', }; +export type CrewMember = + | 'commander' + | 'radioman' + | 'gunner' + | 'driver' + | 'loader'; export type TankDefinitions = Record; export interface TankDefinition { id: number; + crew: { [crew in CrewMember]?: number }; health: number; nation: string; name: string;