Training pays a quarter, and the level bar wears its endpoints
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7d39032907
commit
a38c804069
6 files changed
+37
-10
No files matched your search
+6
-2
@@ -72,11 +72,15 @@ export function beginRunXp() { runXp = 0; runFrom = levelAt(prof.xp); }
|
||||
export const runDelta = () => ({ xp: runXp, from: runFrom, to: levelAt(prof.xp) });
|
||||
|
||||
// ONE guard for every no-stakes mode, in the shared function — a call site cannot forget it.
|
||||
const muted = () => G.drill || G.bench || G.testMode || (G.match && G.match.train);
|
||||
// The training court left this list 2026-08-29 (Oliver: zero pay made it feel pointless in a
|
||||
// meta game): it pays A QUARTER now — reps count, the real court stays strictly 4x better, and
|
||||
// the no-permadeath grind can never be the optimal one.
|
||||
const muted = () => G.drill || G.bench || G.testMode;
|
||||
|
||||
export function award(kind, n = 1) {
|
||||
if (muted()) return 0;
|
||||
const amt = (XP[kind] || 0) * n;
|
||||
let amt = (XP[kind] || 0) * n;
|
||||
if (G.match && G.match.train) amt = Math.round(amt / 4);
|
||||
if (!amt) return 0;
|
||||
const before = levelAt(prof.xp);
|
||||
prof.xp += amt; runXp += amt;
|
||||
|
||||
Reference in new issue
Block a user