yasuki_core.engine.rules.flow#

Functions

activate(game, card_id)

Announce an activated ability: pay its cost, then resolve its target — a single chosen card, or every card it hits for an all_targets ability.

advance(game)

Advance the active player's turn to the next phase; past the Dynasty phase, run the end of the turn and begin the next.

begin_game(game)

Run the game-start pass once after GameState.start(), before the active player acts: fire each pre-game permanent's enters-play effect, then the first turn's housekeeping.

can_proclaim(game, card)

Whether recruiting card could be Proclaimed by its seat: a Personality carrying the seat's Clan Alignment that the seat has not yet Proclaimed against this turn.

cancel(game)

Back out of the pending decision, undoing the action that raised it.

dynasty_discard(game, card_id)

Discard a face-up province card to its owner's dynasty discard and refill the province — the Dynasty Discard action.

gold_producers(game, seat)

The unbowed gold producers seat controls in play — its Stronghold and gold Holdings — each a source it may bow for gold (KD6, stat-derived).

is_legacy_card(card)

Whether card carries the Legacy keyword, so the Legacy ability can search it out.

legacy(game)

Announce the Legacy ability: claim its once-per-turn use and pause for the banish cost.

legacy_candidates(game, seat)

The Legacy cards seat could find right now — the Legacy cards within its search pool.

legacy_key(seat, turn)

The once-per-turn usage key for a seat's Legacy ability, scoped to the turn so it resets each turn without clearing GameState.once_per.

legacy_search_pool(game, seat)

Every card seat's Legacy search looks through: its whole dynasty deck plus the face-down (unrevealed) cards in its provinces.

next_phase(phase)

Return the phase that follows phase within a turn, or None after the last phase (Dynasty), where the turn ends with the fate draw.

perform(game, action)

Apply a chosen action: pass to end the phase, or recruit a card from a province.

proclaim_key(seat, turn)

The once-per-turn usage key for a seat's Proclaim, scoped to the turn so it resets each turn without clearing GameState.once_per.

produce_gold(game, card_id, amount)

Bow the card and add amount gold to its owner's pool — the yield the payment offer quoted for it (KD6).

reachable_gold(game, seat, card)

The gold seat could muster to recruit card: its pool plus the yield of every unbowed producer — judged with card as the payment target since a producer's yield can depend on what it pays for — plus any bow-time boost a producer could add if the seat opts in.

recruit(game, card_id[, invest, renew, proclaim])

Announce a Recruit: defer bringing the card into play, then pause for its cost payment.

recruit_cost(game, card)

The gold a seat pays to recruit card: its printed gold cost, plus the off-clan surcharge when the card has a Clan Alignment the seat does not share, less the card's own conditional recruit discount.

recruitable_via_ability(game, source)

The face-up Province Holdings source's recruit ability can afford to bring into play.

run_stack(game)

Drain deferred work, running each item until the stack empties or one pauses for a decision.

submit(game, response)

Answer the pending decision and resume the engine.