feat: more data

This commit is contained in:
TrèsAbhi committed 2024-02-08 10:58:03 -06:00
1 parent de52b525fb
commit 2b37e08f19
5 files changed
+96 -31

No files matched your search

@@ -13,7 +13,9 @@ import { Info } from './components/Info';
export function Characteristics() {
const awaitedModelDefinitions = use(modelDefinitions);
const { tank, turret, gun, engine } = useDuel((state) => state.protagonist!);
const { tank, turret, gun, engine, track } = useDuel(
(state) => state.protagonist!,
);
const shell = gun.shells[0];
const tankModelDefinition = awaitedModelDefinitions[tank.id];
const turretModelDefinition = tankModelDefinition.turrets[turret.id];
@@ -24,6 +26,8 @@ export function Characteristics() {
turretModelDefinition.boundingBox,
),
);
const weight =
tank.weight + engine.weight + track.weight + turret.weight + gun.weight;
let dpm: number;
@@ -50,7 +54,7 @@ export function Characteristics() {
{tank.health + turret.health}
</Info>
<Info name="Fire chance" unit="%">
{Math.round(engine.fire_chance * 100)}
{Math.round(engine.fireChance * 100)}
</Info>
<Info name="View range" unit="m">
{turret.viewRange}
@@ -175,12 +179,12 @@ export function Characteristics() {
{gun.dispersion.base.toFixed(3)}
</Info>
<Info indent name="Moving" unit="s">
+ {tank.dispersion.move.toFixed(3)}
+ {track.dispersion.move.toFixed(3)}
</Info>
<Info indent name="Hull traversing" unit="s">
+ {tank.dispersion.traverse.toFixed(3)}
<Info indent name="Hull traversing" unit="°">
+ {track.dispersion.traverse.toFixed(3)}
</Info>
<Info indent name="Turret traversing" unit="s">
<Info indent name="Turret traversing" unit="°">
+ {gun.dispersion.traverse.toFixed(3)}
</Info>
<Info indent name="After shooting" unit="m">
@@ -243,7 +247,7 @@ export function Characteristics() {
TODO
</Info>
<Info name="Weight" unit="mt">
TODO
{(weight / 1000).toFixed(1)}
</Info>
<Info name="Traverse speed" unit="°/s" />
<Info indent name="On hard terrain">
+5 -2
View File
@@ -15,13 +15,16 @@ export interface BoundingBox {
}
interface ModelDefinition {
armor: ModelArmor;
trackThickness: number;
turretOrigin: Vector3Tuple;
hullOrigin: Vector3Tuple;
turretRotation?: InitialTurretRotation;
turrets: Record<number, TurretModelDefinition>;
tracks: Record<number, TrackDefinition>;
boundingBox: BoundingBox;
}
interface TrackDefinition {
thickness: number;
origin: Vector3Tuple;
}
export interface InitialTurretRotation {
yaw: number;
pitch: number;
+17 -2
View File
@@ -28,6 +28,7 @@ export interface TankDefinition {
testing?: boolean;
turrets: TurretDefinition[];
engines: EngineDefinition[];
tracks: TrackDefinition[];
price: TankDefinitionPrice;
speed: {
forwards: number;
@@ -38,18 +39,30 @@ export interface TankDefinition {
moving: number;
onFire: number;
};
equipment: string;
weight: number;
}
export interface TrackDefinition {
id: number;
weight: number;
traverseSpeed: number;
dispersion: {
move: number;
traverse: number;
};
equipment: string;
resistance: {
hard: number;
medium: number;
soft: number;
};
}
export interface EngineDefinition {
id: number;
name: string;
tier: Tier;
fire_chance: number;
fireChance: number;
power: number;
weight: number;
}
export type TankDefinitionPrice =
| { type: 'credits'; value: number }
@@ -62,6 +75,7 @@ export interface TurretDefinition {
name: string;
tier: Tier;
guns: GunDefinition[];
weight: number;
}
export type GunDefinition =
| GunDefinitionRegular
@@ -69,6 +83,7 @@ export type GunDefinition =
| GunDefinitionAutoReloader;
interface GunDefinitionBase {
rotationSpeed: number;
weight: number;
id: number;
name: string;
tier: Tier;
+2
View File
@@ -11,6 +11,7 @@ import {
ShellDefinition,
TankDefinition,
Tier,
TrackDefinition,
TurretDefinition,
} from '../core/blitzkrieg/tankDefinitions';
@@ -24,6 +25,7 @@ export interface DuelMember {
turret: TurretDefinition;
gun: GunDefinition;
shell: ShellDefinition;
track: TrackDefinition;
}
interface TankopediaPersistent {
model: {