Endings
A campaign closes one of three ways. The ending is determined by how
the player got to Night 7+, not by a final-night choice in isolation
(except for accept_it, which is a deliberate fold).
| Ending | Trigger | Tone |
|---|---|---|
pay_debt | Cleared all 7 nights. | Walks out at dawn, weighted. |
accept_it | Bergman fold (voluntary fold of the final hand). | He thanks you. |
last_call_final | Last call on Night 7. | He keeps the chair warm for next time. |
pay_debt — walked out
Section titled “pay_debt — walked out”You cleared 7 nights. The dealer pays you out — chips, charms intact. You leave at dawn. He keeps the page open for tomorrow.
This is the “win,” but it’s not heroic. The dealer marks it without
flourish. The Book of Hours’ on_seven_nights page unlocks here.
accept_it — Bergman fold
Section titled “accept_it — Bergman fold”Voluntarily fold the final hand at Room 6. The campaign ends with the dealer’s grace ending. He has been waiting for someone to choose the chair.
“You chose it. That matters. I want you to know it mattered.”
This isn’t a “lose” — the player explicitly opted into the most intimate close the game offers. The dealer is grateful, in the small way he allows.
The Book of Hours’ on_the_chair page unlocks here.
last_call_final — couldn’t make it
Section titled “last_call_final — couldn’t make it”Last call on Night 7. The campaign ends with the dealer keeping a final Piece. He is sorry. He says so without the word.
The dealer’s voice for the final-night last call:
“And so we close it here, {name}. I will keep the chair warm. It is the least.”
What persists across endings
Section titled “What persists across endings”| State | Persists |
|---|---|
| Pieces lost during the campaign | yes |
| Hours of the Night earned | yes |
| Mantle tier progression | yes |
| Pages unlocked | yes |
| Endings seen | yes (in MetaProgression.endingsSeen) |
| Charm tray | no (cleared) |
| Sanity / capital / vows | no (per-campaign) |
Where this lives
Section titled “Where this lives”lib/sim/ending.dart—Endingenum,EndingChooser.lib/sim/campaign_state.dart:CampaignState.endingId— stamped on the closing transition.lib/sim/campaign_controller.dart—recordBergmanFold()writesaccept_it; final-night last-call writeslast_call_final.