Make the opponent level matter in the cup
This commit is contained in:
1 parent
058636fae3
commit
bfc70d7388
8 files changed
+80
-19
No files matched your search
+8
-4
@@ -367,8 +367,8 @@ export function startMatch(cup = false, draw = null, train = 0) {
|
||||
if (G.interlude || G.horde || G.bossFight || G.drill || G.match || G.bench || G.net) return false;
|
||||
// THE LEAGUES: the profile's league is the world (band, pace tier, court — see PROJECT.md).
|
||||
// Stamped onto G so gameplay's leaguePace() and the dials below never read the profile module.
|
||||
// Netplay and training stay league-1 worlds: a human opponent and a practice rep both play the
|
||||
// shipped game (train still picks any met rung, but at the shipped pace).
|
||||
// Netplay stays a league-1 world. Training still stamps league 1 because it promotes nobody,
|
||||
// but its selected opponent supplies the real territory pace through gameplay.leaguePace.
|
||||
G.league = G.net || train ? 1 : prof.lg;
|
||||
// THE CLIMB: the arcade opens at the very BOTTOM of the ladder and runs the whole earned club,
|
||||
// clamping at your league's top (matchGameWon) — the marathon whose length the promotions buy.
|
||||
@@ -669,17 +669,21 @@ function matchOpponent() {
|
||||
const cup = G.match.cup;
|
||||
// THE WALK-ON wears its own zoned layout (render.drawFoeModal — Oliver: the generic line
|
||||
// stack was "a wall of text"). `foe` drives the drawing; title/body still carry the same
|
||||
// words for the suite and any legacy reader. The level pair is display only.
|
||||
// words for the suite and any legacy reader. The level pair is also the cup's readiness measure:
|
||||
// gameplay.peerK turns closing this gap into extra legs and timing, without weakening the body.
|
||||
const sub = cup ? [cup.rounds[cup.round].name + (cup.rounds[cup.round].need > 1
|
||||
? ' · FIRST TO ' + cup.rounds[cup.round].need + ' GAMES' : '')]
|
||||
// the top of the band walking BACK on is the arcade's natural "what now?" moment — the
|
||||
// intro answers it in place (THE LEAGUES: the cup is the only promotion)
|
||||
: G.match.again ? ['NOBODY STRONGER IS LEFT', 'THE CUP IS THE WAY UP'] : [];
|
||||
const lvl = foeLevel(G.match.opp), mine = levelAt(prof.xp);
|
||||
const gap = lvl - mine;
|
||||
const peer = gap > 5 ? gap + ' LEVELS ABOVE YOU' : gap > 0 ? 'ALMOST EVEN'
|
||||
: gap === 0 ? 'EVENLY MATCHED' : 'YOU HAVE THE EDGE';
|
||||
showModal({ title: zb.foe.name, color: UI.hot,
|
||||
body: [zb.foe.line, 'LEVEL ' + lvl + ' — YOURS: ' + mine].concat(sub),
|
||||
foe: { head: 'z_' + zb.fam + 'head', name: zb.foe.name, line: zb.foe.line,
|
||||
lvl, mine, sub } });
|
||||
lvl, mine, peer, sub } });
|
||||
// ...and a fresh body has read NOTHING yet: the habit tracker starts clean (see THE READ, config)
|
||||
G.match.laneRun = 0; G.match.lastLane = undefined; G.match.surprised = G.match.expected = false;
|
||||
// a FLAT pool per body: with regicide gone the body is pure scoreboard (matchPoint takes a
|
||||
|
||||
Reference in new issue
Block a user