From 898fd4bbf6ca6dfe3826825b98d726d86207019c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sat, 4 Apr 2026 19:51:56 -0500 Subject: [PATCH] feat: simplify --- .../src/core/blitzkit/tankCharacteristics.ts | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/packages/website/src/core/blitzkit/tankCharacteristics.ts b/packages/website/src/core/blitzkit/tankCharacteristics.ts index 906dac25b..4e4354a2d 100644 --- a/packages/website/src/core/blitzkit/tankCharacteristics.ts +++ b/packages/website/src/core/blitzkit/tankCharacteristics.ts @@ -27,6 +27,8 @@ import { defaultEqualizer } from "./tankToDuelMember"; export type TankCharacteristics = ReturnType; export type TankCharacteristicsKey = keyof TankCharacteristics; +const EQUALIZER_HEALTH_EPSILON = 50; + export function tankCharacteristics( { tank, @@ -187,12 +189,12 @@ export function tankCharacteristics( hasCalibratedShells, resolvePenetrationCoefficient(true, equalize, shell.type, equalizer) - 1, ]) * equalizer.penetration; - const equalizerHealthCoefficient = equalizer.health; - const healthBonusCoefficient = coefficient( - [hasSandbagArmor, 0.03], - [hasEnhancedSandbagArmor, 0.06], - [hasImprovedAssembly, 0.04], - ); + const healthCoefficient = + coefficient( + [hasSandbagArmor, 0.03], + [hasEnhancedSandbagArmor, 0.06], + [hasImprovedAssembly, 0.04], + ) * equalizer.health; const shellVelocityCoefficient = coefficient( [hasSupercharger, 0.35], [hasImprovedGunPowder, 0.3], @@ -506,13 +508,13 @@ export function tankCharacteristics( hullTraverseCoefficient * (track.resistance_hard / softTerrainCoefficientRaw) * (stockWeight / weightKg); - const epsilon = 50; - const baseHealth = tank.health + turret.health; - const equalizedBaseHealth = baseHealth * equalizerHealthCoefficient; - const quantizedEqualizedBaseHealth = equalize - ? Math.round(equalizedBaseHealth / epsilon) * epsilon - : equalizedBaseHealth; - const health = quantizedEqualizedBaseHealth * healthBonusCoefficient; + let health = (tank.health + turret.health) * healthCoefficient; + + if (equalize) { + health = + EQUALIZER_HEALTH_EPSILON * Math.round(health / EQUALIZER_HEALTH_EPSILON); + } + const fireChance = engine.fire_chance * fireChanceCoefficient; const viewRange = turret.view_range * viewRangeCoefficient; const camouflageStill = tank.camouflage_still * camouflageCoefficientStill;