Carryover Calculator

{raceLen}m
Delay (m) Duration Accel
{#each rawAccels as skill, i (i)}
{skill.x}m {skill.dur}s {skill.accel}
{/each}
Quick Setup
{#each quick as q (q.name)} {/each}
= 0} class="peer my-auto h-6 w-6 align-middle" />
{#snippet info(name: string, unit: string, val: number, val2?: number)} {#if val2 == null} {val.toFixed(3)} {unit} {:else} {val.toFixed(3)} – {val2.toFixed(3)} {unit} {/if} {/snippet}
{@render info('Mid-Race Speed', 'm/s', midSpeed[0], midSpeed[1])} {@render info('Base Acceleration', 'm/s²', lateAccel)} {@render info('Spurt Speed', 'm/s', spurtSpeed)}
{@render info('Accel Distance', 'm', distance[1] - phases[race.Phase.MidRace], distance[0] - phases[race.Phase.MidRace])} {@render info('Accel Time', 's', time[1], time[0])} {@render info('Finish Time', 's', finishTime[1], finishTime[0])}
{@render info('Carryover Gain', 'L', carryoverGain[1], carryoverGain[0])} {@render info('Carryover + Accel Gain', 'L', skillGain[1], skillGain[0])}
the chart seems to have didn't
{#snippet seggsTable(name: string, s: accel.Travel[])} {#each s as { start, end, a } (start.t)} {/each}
{name}
Time Accel Distance Speed
{end.t.toFixed(3)} {a.toFixed(3)} {end.x.toFixed(3)} {end.v.toFixed(3)}
{/snippet}
{@render seggsTable('Fastest Speed', seggs[1])} {@render seggsTable('Slowest Speed', seggs[0])}