zenno/doc/race: conserve power
This commit is contained in:
@@ -642,6 +642,49 @@ export function laneChangeSpeed(powerStat: number, maxLaneOrOrder?: number, curr
|
||||
*/
|
||||
export const LANE_CHANGE_ACCEL = 0.03;
|
||||
|
||||
const conserveStratDistCoef = {
|
||||
[RunningStyle.FrontRunner]: {
|
||||
[Distance.Sprint]: 1,
|
||||
[Distance.Mile]: 1,
|
||||
[Distance.Medium]: 1,
|
||||
[Distance.Long]: 1,
|
||||
},
|
||||
[RunningStyle.PaceChaser]: {
|
||||
[Distance.Sprint]: 0.7,
|
||||
[Distance.Mile]: 0.8,
|
||||
[Distance.Medium]: 0.9,
|
||||
[Distance.Long]: 0.9,
|
||||
},
|
||||
[RunningStyle.LateSurger]: {
|
||||
[Distance.Sprint]: 0.75,
|
||||
[Distance.Mile]: 0.7,
|
||||
[Distance.Medium]: 0.875,
|
||||
[Distance.Long]: 1,
|
||||
},
|
||||
[RunningStyle.EndCloser]: {
|
||||
[Distance.Sprint]: 0.7,
|
||||
[Distance.Mile]: 0.75,
|
||||
[Distance.Medium]: 0.86,
|
||||
[Distance.Long]: 0.9,
|
||||
},
|
||||
[RunningStyle.GreatEscape]: {
|
||||
[Distance.Sprint]: 1,
|
||||
[Distance.Mile]: 1,
|
||||
[Distance.Medium]: 1,
|
||||
[Distance.Long]: 1,
|
||||
},
|
||||
} as const;
|
||||
|
||||
export function conservePowerAccel(distanceType: Distance, style: RunningStyle, rawPower: number, powerSkillBonus?: number, spotStruggled?: boolean, rushed?: boolean): number {
|
||||
const power = rawPower + (powerSkillBonus ?? 0);
|
||||
if (power <= 1200) {
|
||||
return 0;
|
||||
}
|
||||
const sdc = conserveStratDistCoef[style][distanceType];
|
||||
const activity = rushed ? 0.8 : (spotStruggled ? 0.98 : 1);
|
||||
return Math.sqrt((power - 1200) * 130) * 0.001 * sdc * activity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate a horse's minimum speed for a race.
|
||||
* @param raceLen Length of the race in meters
|
||||
|
||||
Reference in New Issue
Block a user