Five Kills: Spirit. Twenty Kills: Heaven's Judgment. — The Ladder Built to Keep You Swinging
You're cutting through enemies, lost count of how many you've killed. The fifth one falls, and suddenly golden text explodes in the center of your screen: "Spirit Surge! +1" — then vanishes.
You pause for half a second.
Then you keep cutting.
Four Steps on the Ladder
Buried in gameState.ts at line 211, Dusk wrote four numbers that define an entire progression loop in slack-tower:
const COMBO_MILESTONES = [5, 10, 15, 20] as const;
Four thresholds. Four rewards. Each one louder and more dramatic than the last.
5 kills: Spirit Surge (氣合)
Your base recovers 1 HP. Golden text, 50px, a gentle ascending chime (660→880→1100Hz), the screen edges briefly glow gold. The game is saying: "Nice work. Keep going."
10 kills: Raging Spirit (烈氣)
Attack speed ×1.5 for 4 seconds. The text is now orange, 56px — slightly bigger. The audio jumps to a sweeping surge from 300Hz to 900Hz. Something ignites.
15 kills: Divine Descent (鬼神降臨)
Full invincibility for 3 seconds. The text turns deep crimson at 64px, the screen flashes nearly blood-red (flash opacity 0.3). A low gong rings at 80Hz, followed by three ascending tones. For three seconds, you cannot die.
20 kills: Heaven's Judgment (天誅)
The ultimate ability gauge fills completely. The text hits 72px in blinding gold-white, the screen almost whiteouts (flash opacity 0.45). The audio plays a full C5-E5-G5 major chord, bass impact, and high shimmer — an epic that rises, peaks, and resolves. And you're about to release your ultimate on everything still standing.

The Game Remembers Every Kill
Dusk tracks which milestones you've already hit with a bitmask — one bit per threshold, all four packed into a single integer. When you kill an enemy, checkComboMilestone() scans the array and fires off every milestone you've crossed but haven't collected yet.
If your combo breaks, the bitmask resets. The next chain starts fresh. All four steps are waiting again.
There's no punishment for losing your streak — just the quiet reminder that you haven't reached the top yet. And to make the climb feel increasingly urgent: combo height also scales your musou gauge charge per kill. At 5-streak, each kill charges 7%. At 10-streak, 10%. At 15-streak, 14%. The longer you sustain it, the faster you fill the bar.
Font Size Is the Designer's Voice
Look at those four sizes: 50px → 56px → 64px → 72px.
They're not random. Each step gets a little larger, like someone speaking with growing excitement. The fifth kill is a friend's encouraging tap on your shoulder. The twentieth kill is a crowd roaring behind you.
The animation in hud.ts matches this escalation: text bursts from scale(0.3), overshoots to scale(1.15), settles at scale(0.95), then lands at scale(1.0) — that compressed-then-released snap of something hitting hard. The subtitle slides in 0.2 seconds later, so you absorb the headline before receiving the details.

The Trap is Called "One More Kill"
Game design has an old question: how do you keep players playing?
The combo milestone system doesn't answer it with more content. It answers with a feeling: you're always one kill away from the next reward.
Four kills? One more for Spirit Surge. Nine kills? One more for attack speed. Fourteen kills? One more for invincibility. Nineteen kills? One more for the ultimate. This psychological pull — the near-miss, the almost-there — is called the proximity effect. The closer you are to a reward, the stronger the motivation to keep going.
Dusk may or may not have read the psychology papers. But he put the mechanism into four numbers on a single line of code. Each threshold is precisely calibrated: far enough to require effort, close enough to always feel reachable.
Five kills, it calls you Spirit. Twenty kills, it calls it Heaven's Judgment. Every step on that ladder says the same thing: one more, and you're there.