pub const K_HP_KNOTS: &[(i64, f64)];Expand description
Multiplier on encounter HP, checked against the player’s DPS.
Sparse knots, interpolated in log space, EMPTY by default — an empty table
means 1.0 everywhere, so authoring nothing changes nothing.
Why this exists as its own curve: enemy strength was a single scalar,
decomposed into HP and Attack by fixed exponents inside spawn_wave. That
makes the two failure modes inseparable. A boss that dies at the right speed
while the player never drops below 90 % HP and a boss that is a bullet sponge
the player barely survives are OPPOSITE problems, and one scalar behind a
sqrt cannot fix one without moving the other — every correction trades a
pacing failure for a survival failure.
§2.7’s correction matrix assumes two independent levers: raise K_OUT when
survival pressure is missing, lower K_HP when a boss takes too long, and do
both when the fight is wrong on both axes.