From 9141f3d63fd0aab0f36bcfa4cfedb85b9d4328e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com>
Date: Sun, 28 Jan 2024 19:32:12 -0600
Subject: [PATCH] feat: camo and view range
---
scripts/buildAssets/definitions.ts | 16 ++++++++++++++--
.../[id]/components/Characteristics/index.tsx | 4 ++--
src/core/blitzkrieg/tankDefinitions.ts | 8 +++++++-
3 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/scripts/buildAssets/definitions.ts b/scripts/buildAssets/definitions.ts
index cdd2c69e6..32b1fc7a7 100644
--- a/scripts/buildAssets/definitions.ts
+++ b/scripts/buildAssets/definitions.ts
@@ -71,7 +71,11 @@ type VehicleDefinitionArmor = Record<
number | { vehicleDamageFactor: 0; '#text': number }
>;
interface VehicleDefinitions {
- invisibility: { moving: number; still: number; firePenalty: number };
+ invisibility: {
+ moving: number;
+ still: number;
+ firePenalty: number;
+ };
consumableSlots: number;
provisionSlots: number;
optDevicePreset: string;
@@ -107,6 +111,7 @@ interface VehicleDefinitions {
};
turrets0: {
[key: string]: {
+ circularVisionRadius: number;
maxHealth: number;
armor: VehicleDefinitionArmor;
userString: number;
@@ -125,6 +130,7 @@ interface VehicleDefinitions {
'#text': number;
};
};
+ invisibilityFactorAtShot: number | number[];
reloadTime: number;
maxAmmo: number;
extraPitchLimits?: {
@@ -393,7 +399,7 @@ export async function definitions(production: boolean) {
camouflage: {
still: tankDefinition.root.invisibility.still,
moving: tankDefinition.root.invisibility.moving,
- firing: tankDefinition.root.invisibility.firePenalty,
+ onFire: tankDefinition.root.invisibility.firePenalty,
},
turrets: [],
engines: [],
@@ -489,6 +495,7 @@ export async function definitions(production: boolean) {
tier: turret.level as Tier,
guns: [],
health: turret.maxHealth,
+ view_range: turret.circularVisionRadius,
});
modelDefinitions[tankId].turrets[turretId] = {
@@ -576,6 +583,10 @@ export async function definitions(production: boolean) {
reload: gunReload,
count: gunClipCount,
interClip: gunInterClip,
+ camouflageLoss:
+ typeof turretGunEntry.invisibilityFactorAtShot === 'number'
+ ? turretGunEntry.invisibilityFactorAtShot
+ : turretGunEntry.invisibilityFactorAtShot.at(-1)!,
} as GunDefinition);
modelDefinitions[tankId].turrets[turretId].guns[gunId] = {
@@ -842,6 +853,7 @@ export async function definitions(production: boolean) {
});
});
+ return;
await commitAssets(
'definitions',
[
diff --git a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx
index 5724266ce..0cc7eaf4a 100644
--- a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx
+++ b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx
@@ -65,10 +65,10 @@ export function Characteristics() {
TODO
-
+
TODO
-
+
TODO
diff --git a/src/core/blitzkrieg/tankDefinitions.ts b/src/core/blitzkrieg/tankDefinitions.ts
index a2e26184f..0b60d986d 100644
--- a/src/core/blitzkrieg/tankDefinitions.ts
+++ b/src/core/blitzkrieg/tankDefinitions.ts
@@ -28,7 +28,11 @@ export interface TankDefinition {
turrets: TurretDefinition[];
engines: EngineDefinition[];
price: TankDefinitionPrice;
- camouflage: { still: number; moving: number; firing: number };
+ camouflage: {
+ still: number;
+ moving: number;
+ onFire: number;
+ };
equipment: string;
}
export interface EngineDefinition {
@@ -42,6 +46,7 @@ export type TankDefinitionPrice =
| { type: 'gold'; value: number };
export interface TurretDefinition {
health: number;
+ view_range: number;
id: number;
name: string;
tier: Tier;
@@ -54,6 +59,7 @@ interface GunDefinitionBase {
name: string;
tier: Tier;
shells: ShellDefinition[];
+ camouflageLoss: number;
}
interface GunDefinitionRegular {
type: 'regular';