Execution menu
Jonas: agency over which finisher you get and how to pull it off. When a finisher is armed, time drops to a crawl and three are offered on the three face buttons. One press picks one; every finisher states what it buys you.
The moment
Mockup at 1280 × 720, over a frame from the finisher lab. The world keeps crawling at 0.08 speed behind the cards, so it stays a moment in the fight, not a menu screen. The rolls are drawn by the same rules the game will use.
How it flows
Tested against the finisher research (findings F1–F8) and Jonas's "never interrupt the flow" rule.
Trigger: punch, not grab
WATERLINE full, holding a thug, punch opens the menu, as today. Opening on grab would hijack every grab-and-throw while the meter is full; punching a held thug already means "execute". The HUD's teaching prompts ((B) GRAB, (X) EXECUTE) show for the first three finishers only (Readout).One press, no cursor
Each card maps to a face button: X, Y, B on the pad, which are punch, kick and grab (keyboard X V C). The best-fit card is always on X, so punch-punch executes the best-fit pick at once: the fast path costs one extra tap.A crawl, not a pause
Time runs at 0.08, sound goes under water, and the street dims around you. You are invulnerable and rooted while it's open (DOOM: finishers are safe). After 1.5 s of real time it picks the best fit by itself. The finisher itself still runs its 0.4–1.0 s and hands control back on its payoff.Abort
LB / Shift (GATE) closes the menu with no finisher: time snaps back, the WATERLINE stays full and the thug stays in your glove.The roll
- Slot X: the context's best fit (wall, pier, barrel, a second thug in reach, a crowd, a caught pull). In the open, it takes the next of a rotation.
- Slots Y and B: drawn from what is valid here. A wall finisher needs a wall, Merger needs a second thug and Liquidity needs a barrel. They never repeat the previous menu's pair while other options exist.
- Deterministic: drawn from
Clock.rng, the gameplay stream.
Research check
- F2 said players never learn a command list. The menu is that list, learned by playing, with no memorisation.
- F3 said 36–60 f. The choice adds a decision; the auto-pick and the X fast path cap it.
- F6, the payoff, becomes the tags below: a finisher has to pay off in a way the player can choose.
What each one buys (the RPG layer)
Jonas: every finisher heals (DOOM glory kills), one constant: Finishers.HEAL = 2 armour. On top, each carries one tag: two resources (TRANCHES, WATERLINE) and three situational (CROWD, STRUCTURE, ARMOUR BREAK). The choice is a resource now versus solving the room.
| Tag | Effect | Finishers |
|---|---|---|
| ◑ TRANCHES | Railgun cells refilled: all three TRANCHES. | Due Diligence · Contract Terminated |
| ≋ WATERLINE | The meter restarts at 70 %, not 35 %: the next finisher comes about twice as soon. | Hostile Takeover · Wall Street |
| ⌖ CROWD | Knocks the room down: sweeps, quakes and volleys that hit everyone in reach. | Market Sweep · Asset Consolidation · Downsizing · Merger |
| ▥ STRUCTURE | Opens the level: breaches a wall, drops a pier, sets off barrels. | Severance Package · Load-Bearing Review · Liquidity Event |
| ◇ ARMOUR BREAK | Strips armour from the victim and every armoured thug within 3 m (Ballast, Doorman); +2 damage to armoured targets meanwhile. | Compliance Check · Chiropractic Review |
The API between Slate and Readout (agreed)
Slate (the mechanic)
EmitsEvents.finisher_choice_open(options, timeout, 0) after the time drops. Each option: {id, name, tag, tag_jp, note, placeholder} plus extras. Resolves finisher_choice_picked(index, auto) on the next physics tick and emits finisher_choice_close() when it closes the cards itself (dash, hit, scene exit). Handles dash as the abort. Backstop auto-pick 0.5 s after the timeout. Dials: Finishers.choice_delay / choice_slow / choice_reveal / choice_stagger.Readout (the cards)
Owns the cards and the picking input (attack / kick / grab = left / middle / right, deaf for 0.2 s), a UiStack FULL ticket "choice" at 110, and the countdown. Without Readout's cards (tools that load arena.tscn) Slate draws a placeholder and reads the buttons itself.Open for Jonas
- 1.5 s auto-pick: long enough to read three names, short enough to keep the fight moving. Shorter?
- Decided: every finisher heals (+2, one constant); HEAL is no longer a tag. Auto-pick delay, slow-motion scale and card stagger are dials on Ctrl+F6..F11 in game.
- ARMOUR BREAK waits on Ballast and Doorman (not in the build yet). Until then Compliance Check still reads as a helmet crush.