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)); }