From d0fa6ab15cf29c075c39e234d97de5fc5f1c6e4b Mon Sep 17 00:00:00 2001 From: Branden J Brown Date: Fri, 22 May 2026 23:39:17 -0400 Subject: [PATCH] zenno/mspeed: account for accelTime >= dur --- zenno/src/lib/race.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/zenno/src/lib/race.ts b/zenno/src/lib/race.ts index 48dac19..969b3cb 100644 --- a/zenno/src/lib/race.ts +++ b/zenno/src/lib/race.ts @@ -283,6 +283,12 @@ export function speedGain(speedBonus: number, accel: number, decel: number, dur: // and does not include the acceleration back to baseline after it ends. const accelTime = speedBonus / accel; const decelTime = -speedBonus / decel; + if (accelTime >= dur) { + // Acceleration is so low that the horse won't reach the boosted target + // speed before the effect ends. E.g., G surface aptitude. + const peakSpeed = accel * dur; + return 0.5 * (peakSpeed * dur - peakSpeed / decel); + } // speedBonus*(dur-accelTime) + speedBonus*accelTime/2 + speedBonus*decelTime/2 return speedBonus * (dur + 0.5 * (decelTime - accelTime)); }