Killed in action: the decline finally has a floor

A car could be driven to zero in every subsystem and would keep going
forever at a wheezing thirty km/h. Nothing was at stake, so nothing was
worth protecting, so there was never a reason to take the quiet road.
"Decline, not reset" only reads as a stake if the decline can run out.

When the chassis is gone, so are you: somebody pulls you out, you come
round at the nearest base, the job in hand is written off with the car,
and the ground your work had won is handed back - 25m, through the same
path a finished mission uses, so the war moves for one reason only.

The replacement is a real car, patched to its ceilings so it can be
driven off the forecourt, and every ceiling is 8% down on the one you
wrote off. That is the ratchet applied at the one moment repairs cannot
reach. It stops at a floor: without one, enough deaths issue a car that
is written off the instant you are handed it, and the only way out of
the campaign is wiping it. A miserable car you can still drive is the
interesting version of that ending.

None of it is announced. The front moving against you is something you
find out by driving back out there.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
dejvino
2026-08-09 07:12:36 +02:00
co-authored by Claude Opus 5
parent d19ce2821f
commit 2e0373fb27
7 changed files with 285 additions and 2 deletions
+9 -1
View File
@@ -50,6 +50,10 @@ export interface HudModel {
/** Rounds in the air nearby. Not a health bar — a reason to keep moving. */
danger: number;
completed: number;
/** Jobs dropped or lost with a car. */
failed: number;
/** Cars written off underneath the player. */
kia: number;
parts: number;
notice: string;
/** 0..1 toward wiping the campaign, while R is held. */
@@ -126,7 +130,11 @@ export function createHud(seed: number) {
`${part.padEnd(7)} ${bar(condition.level[part], condition.ceiling[part])} ` +
`${(condition.level[part] * 100).toFixed(0)}%`,
),
`parts ${model.parts.toFixed(2)} runs ${model.completed}`,
`parts ${model.parts.toFixed(2)} runs ${model.completed}` +
(model.failed > 0 ? ` lost ${model.failed}` : '') +
// Cars are counted, not lives. There is no stock of them to run out
// of; the number is there so a long campaign reads as a history.
(model.kia > 0 ? ` cars ${model.kia + 1}` : ''),
'',
...(model.quest ? questLines(model.quest) : ['no mission — find a base']),
'',