The leagues, phase 1: the profile clock ticks — xp, levels, the identity screen, the server mirror
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bc10216d0b
commit
9133c0d351
12 files changed
+507
-19
No files matched your search
+4
-1
@@ -11,6 +11,7 @@ import { drillKill, drillCaught } from './drill.js';
|
||||
import { splatPoint, cheer, spentBall, aside, grantWeapon, endBurst, sliceCarom } from './gameplay.js';
|
||||
import { resolveInterlude, endBossFight } from './beats.js'; // runtime-only cycle, like the gameplay one
|
||||
import { tally, multiKill, endRun, MODE_MATCH } from './stats.js';
|
||||
import { award } from './profile.js';
|
||||
|
||||
export const zombies = []; // {x, z, v, walkT, variant: 'a'|'b'|'c'}
|
||||
export const gore = []; // lawn decals {x, z, r, a} — the flat ground layer
|
||||
@@ -498,10 +499,12 @@ function killZombie(i, quiet) {
|
||||
// the one that has been killing you.
|
||||
// A MATCH OPPONENT FILES UNDER WHO IT IS, not under the generic body it wears: the screen is a
|
||||
// list of who you have felled, and 'r' is a body, not a name. zb.foe is set by matchOpponent.
|
||||
if (zb.variant !== 'o')
|
||||
if (zb.variant !== 'o') {
|
||||
tally(zb.foe ? zb.foe.key
|
||||
: zb.variant === 'B' ? 'B' + Math.max(0, BOSS_ART.indexOf(zb.art))
|
||||
: zb.variant, CAUSE);
|
||||
award('kill'); // the leagues' clock, at the same single funnel — award() mutes no-stakes modes
|
||||
}
|
||||
zombies.splice(i, 1);
|
||||
// THE DRILL RESOLVES HERE — after the splice, and WITHOUT returning. Both halves are load-bearing:
|
||||
// splice first, because drillKill can draw a new combination on the spot (a double fault
|
||||
|
||||
Reference in new issue
Block a user