mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 18:57:03 +02:00
feat: more data
This commit is contained in:
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">
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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: {
|
||||
|
||||
Reference in new issue
Block a user