Skip to content

Mercy cap

The Mercy cap is a ceiling on the cascade’s mult value. When a hand’s mult exceeds the cap, the cascade emits a MercyCapFire event and clamps the value down.

“Enough, friend. The room agrees with him.”

Without intervention, the cap is infinity (no cap). The Mercy arcana family — common to mythic — installs a meaningful ceiling and then provides the levers to raise, lower, or trade against it.

At cascade step 6 (after Pass A and Pass B):

if (mult > spec.mercyCap) {
events.add(MercyCapFire(preCap: mult, cap: spec.mercyCap));
mult = spec.mercyCap;
}

The animator slows down briefly at this beat, the dealer voice fires a mercyCap line, and the felt darkens 30% for ~1.8 seconds.

The 9-charm Mercy family was added in Phase 5 of the original Phase B work and ships in v1.0:

ArcanumEffect
The Mercy in the CupCap is +5 higher per cleared room (cumulative).
The Lamp’s AllowanceCap is +10 higher this room only; refreshes per room.
A Word with the StrangerCap is unchanged, but the cap-fire pays back chips.
The Patient LedgerCap rises by half the cleared rooms’ arcana counts.
The Quiet BargainFirst mercy fire each room is a no-op.
The Lengthening HourCap is replaced by a per-step soft-brake.
The Unbound MomentCap is +20 once per night.
The Hour That StretchesMercy fire converts excess to additive chips.
The Stricter LedgerCap is −20 for the night; +50 chips per cleared room. (Drawback.)

The full set is documented per-arcanum in Arcana → Overview.

Without one, a few mid-night chains can spiral into million-point hands that overshoot any room target by orders of magnitude. The cap keeps the math interpretable on the felt — every cap-fire is a visible beat, not a silent ceiling.

The cap is shown on every relevant arcanum tooltip (“mult cap”, “cap delta”). When it fires:

  • Felt darkens 30%.
  • Dealer voice fires a mercyCap line.
  • The cascade animator pauses 800ms (slow-mode).
  • The trace ledger logs MercyCapFire(preCap, cap).
  • lib/sim/cascade_resolver.dart — the cap gate (step 6).
  • lib/sim/arcana/arcana.dart — the 9 Mercy arcana.
  • lib/sim/night.dart — aggregates mercy_cap:* flags into the effective cap passed to the resolver.