zenno/doc/frbm: precise example for uphill power diff
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
AptitudeLevel,
|
AptitudeLevel,
|
||||||
downhillAccelEnterChance,
|
downhillAccelEnterChance,
|
||||||
frontModeEnterChance,
|
frontModeEnterChance,
|
||||||
|
HORSE_LENGTH,
|
||||||
moveLaneModifier,
|
moveLaneModifier,
|
||||||
paceUpEnterChance,
|
paceUpEnterChance,
|
||||||
Phase,
|
Phase,
|
||||||
@@ -31,6 +32,20 @@
|
|||||||
return x * (1 - p) + x * bonus * p;
|
return x * (1 - p) + x * bonus * p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const uphillSlowPow = 800;
|
||||||
|
const uphillFastPow = 1200;
|
||||||
|
const uphillBaseSpeed = mean2(sectionSpeed(2500, 1200, 1200, RunningStyle.FrontRunner, Phase.MidRace));
|
||||||
|
const uphillSlopes = [
|
||||||
|
{ per: 2, len: 110 },
|
||||||
|
{ per: 1.5, len: 200 },
|
||||||
|
]
|
||||||
|
.map((s) => ({ ...s, slowSpeed: uphillMod(uphillSlowPow, s.per), fastSpeed: uphillMod(uphillFastPow, s.per) }))
|
||||||
|
.map((s) => ({ ...s, slowTime: s.len / (uphillBaseSpeed + s.slowSpeed), fastTime: s.len / (uphillBaseSpeed + s.fastSpeed) }))
|
||||||
|
// TODO(zeph): should include the difference with decel down to uphill speed and accel out of it,
|
||||||
|
// since the high power horse is favored for both
|
||||||
|
.map((s) => ({ ...s, dx: (s.fastSpeed - s.slowSpeed) * s.fastTime + s.slowSpeed * (s.slowTime - s.fastTime) }));
|
||||||
|
const uphillLengths = uphillSlopes.reduce((m, { dx }) => m + dx, 0) / HORSE_LENGTH;
|
||||||
|
|
||||||
const secSpeedS = 1200;
|
const secSpeedS = 1200;
|
||||||
const secSpeedA = 1000;
|
const secSpeedA = 1000;
|
||||||
const secSpeedExample = $derived(sectionSpeed(raceLen, secSpeedS, secSpeedS * 1.1, RunningStyle.FrontRunner, Phase.EarlyRace));
|
const secSpeedExample = $derived(sectionSpeed(raceLen, secSpeedS, secSpeedS * 1.1, RunningStyle.FrontRunner, Phase.EarlyRace));
|
||||||
@@ -425,14 +440,15 @@
|
|||||||
<Sec h="3" id="uphills">Uphills</Sec>
|
<Sec h="3" id="uphills">Uphills</Sec>
|
||||||
<p>
|
<p>
|
||||||
Running uphill carries a penalty to target speed. This penalty scales negatively with the power stat; that is, higher power
|
Running uphill carries a penalty to target speed. This penalty scales negatively with the power stat; that is, higher power
|
||||||
means faster uphill running. It scales positively with slope angle.
|
means faster uphill running. It scales positively with slope angle. There is also a flat reduction in base acceleration for
|
||||||
|
running uphill, which does not change with stats nor slope angle.
|
||||||
</p>
|
</p>
|
||||||
<div class="mb-4 h-60 w-full md:h-96">
|
<div class="mb-4 h-60 w-full md:h-96">
|
||||||
<StatChart
|
<StatChart
|
||||||
class="mx-auto h-full w-full max-w-3xl"
|
class="mx-auto h-full w-full max-w-3xl"
|
||||||
stat={Stat.Power}
|
stat={Stat.Power}
|
||||||
y={uphillSeries}
|
y={uphillSeries}
|
||||||
yLabel="Speed Modifier (m/s)"
|
yLabel="Uphill Speed Modifier (m/s)"
|
||||||
yRule={uphillYRule}
|
yRule={uphillYRule}
|
||||||
range={[-2, 0]}
|
range={[-2, 0]}
|
||||||
/>
|
/>
|
||||||
@@ -441,12 +457,9 @@
|
|||||||
Note that surface aptitude <i>does not</i> affect uphill speed, nor power generally. It only affects acceleration.
|
Note that surface aptitude <i>does not</i> affect uphill speed, nor power generally. It only affects acceleration.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The practical impact is that steep early- and mid-race hills filter out front runners with low power. Even with an otherwise
|
The practical impact is that steep early- and mid-race hills filter out front runners with low power. All else equal, a Seiun
|
||||||
perfect build, an 800 power VBourbon is likely to be passed by a 1280 power (<Skill skill={200152} hint="firm" mention /> + <Skill
|
Sky with {uphillFastPow} power gains an average of about {uphillLengths.toFixed(1)} lengths over a VBourbon with {uphillSlowPow}
|
||||||
skill={200282}
|
power on the Arima Kinen mid-race hills.
|
||||||
hint="comp spirit"
|
|
||||||
mention
|
|
||||||
/>) Seiun Sky.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<Sec h="3" id="downhills">Downhills</Sec>
|
<Sec h="3" id="downhills">Downhills</Sec>
|
||||||
|
|||||||
Reference in New Issue
Block a user