Gate Calculator
Power
Guts
Wit
Style
{#each race.RUNNING_STYLES as [name, style]}
{name}
{/each}
Mood
{#each race.MOODS as mood (mood)}
{race.Mood[mood]}
{/each}
Power Greens
Guts Greens
Wit Greens
{race.Surface[surface]}
{#each race.APTITUDE_LEVELS as apt (apt)}
{race.AptitudeLevel[apt]}
{/each}
Style
{#each race.APTITUDE_LEVELS as apt (apt)}
{race.AptitudeLevel[apt]}
{/each}
{raceLen}m
Turf
Dirt
{#each race.GROUND_CONDITONS as cond (cond)}
{race.GroundConditions[cond]}
{/each}
{#each [2, 1.5, 1, 0, -1, -1.5, -2] as per (per)}
{per > 0 ? `Uphill +${per}` : (per < 0 ? `Downhill ${per}` : 'Flat')}
{/each}
Duration
Accel
{#each rawSkills as skill, i (i)}
{skill.dur}s
{skill.accel}
removeSkill(i)}>×
{/each}
+
Quick Setup
{#each quick as q (q.name)}
setSkillList(q.skills)}>{q.name}
{/each}
{#snippet info(name: string, unit: string, val: number, val2?: number)}
{name}
{#if val2 == null}
{val.toFixed(3)} {unit}
{:else}
{val.toFixed(3)} – {val2.toFixed(3)} {unit}
{/if}
{/snippet}
{@render info('Base Acceleration', 'm/s²', postAccel)} {@render info('Target Speed', 'm/s', speeds[0], speeds[1])}
{@render info('Accel Time', 's', time[0], time[1])} {@render info('Accel Distance', 'm', distance[0], distance[1])} {@render info('Time to Mid-Race', 's', midTime[0], midTime[1])}
{@render info('Skill Gain', 'L', gain[0], gain[1])}
{#snippet seggsTable(name: string, s: accel.Travel[])}
{name}
Time
Accel
Distance
Speed
{#each s as {start, end, a} (start.t)}
{end.t.toFixed(3)}
{a.toFixed(3)}
{end.x.toFixed(3)}
{end.v.toFixed(3)}
{/each}
{/snippet}
{@render seggsTable(slope < 0 ? 'Fastest Speed (Downhill)' : 'Fastest Speed', seggs[1])} {@render seggsTable('Slowest Speed', seggs[0])}