Make the opponent level matter in the cup

This commit is contained in:
wuwi committed 2026-09-03 16:41:02 +02:00
1 parent 058636fae3
commit bfc70d7388
8 files changed
+80 -19

No files matched your search

+8 -3
View File
@@ -556,6 +556,10 @@ export const TUNE = {
// ball pace on BOTH rackets and the opponent's legs together, so league 1
// IS the shipped game (factor 1.0, the calibration rule) and league 5
// plays ~24% faster. The one knob for "das Spiel wird schneller".
peerGap: 15, // THE CUP'S SOFT WALL: this many levels below its opponent earns none of
// the peer gift; reaching parity earns all of it. Never a penalty.
peerRun: 0.08, // parity adds 8% legs on top of the permanent level bonus
peerWindow: 0.12, // ...and 12% contact window. Skill still wins; grinding opens the margin
matchSpeedBase: 1.25, // racketAI speed multiplier for opponent ONE. 1.4 was calibrated against
// the broken recovery (the player never walked back to centre, so every
// wide return looked like opponent strength) — with real footwork restored
@@ -933,9 +937,10 @@ export const leagueOf = lg => LEAGUES[Math.min(LEAGUES.length, Math.max(1, lg |
// which league a LADDER POSITION belongs to — THE CLIMB's tempo reads this (the world speeds up
// as the run crosses each band border), and it is what makes the club read as five territories
export const leagueOfRung = n => LEAGUES.find(l => n <= l.band[1]) || LEAGUES[LEAGUES.length - 1];
// the DISPLAYED level of a ladder position (the walk-on card's "am I its peer yet?" line,
// 2026-08-29): the ladder spread over the profile's 50 levels. Display only — nothing scales
// off it. 49 = profile.LEVEL_CAP - 1 (config cannot import profile; the cycle runs the other way).
// the level of a ladder position (the walk-on card's "am I its peer yet?" line, 2026-08-29):
// the ladder spread over the profile's 50 levels. gameplay.peerK reads it for the cup/training
// readiness gift; the opponent itself never scales with the player's level. 49 =
// profile.LEVEL_CAP - 1 (config cannot import profile; the cycle runs the other way).
export const foeLevel = n => Math.round(1 + (n - 1) / (LADDER - 1) * 49);
// The tournament, PER LEAGUE. Same shape CUP_ROUNDS always had (name/band/need) — round one is a