Skip to main content

✅ Rest phase resets

CategoryAbility
StatusPassing
Testtests/test_turn_sequence.py::test_rest_phase_resets

After 4 cycles, start_rest_phase resets AP, readies all demons, deals new timekeeping cards.

Preconditions

  • cycle = 4, rest_period = 1.

  • P1 AP = 5, P2 AP = 3.

  • P1's Duban (001) EXHAUSTED in lane 0, P2's Murmur (002) EXHAUSTED in lane 1.

  • P1 demon_deck = 12 cards, P2 demon_deck = 10 cards.

  • P1 timekeeping_deck = [], P2 timekeeping_deck = [].

Action

  • start_rest_phase(state, rng)

Expected Postconditions

  • P1 AP = 0, P2 AP = 0 (all AP lost at rest).

  • Duban: READIED, Murmur: READIED.

  • P1 timekeeping_deck = 4 cards, P2 timekeeping_deck = 4 cards.

  • P1 demon_deck = 8 cards (was 12, dealt 4), P2 demon_deck = 6 cards (was 10, dealt 4).

  • cycle = 1 (reset), rest_period = 2 (incremented).

Assertions

assert result.players[Side.PLAYER_1].ap == 0
assert result.players[Side.PLAYER_2].ap == 0
assert duban_result.state == DemonState.READIED
assert murmur_result.state == DemonState.READIED
assert len(result.players[Side.PLAYER_1].timekeeping_deck) == 4
assert len(result.players[Side.PLAYER_2].timekeeping_deck) == 4
assert len(result.players[Side.PLAYER_1].demon_deck) == 8
assert len(result.players[Side.PLAYER_2].demon_deck) == 6
assert result.cycle == 1
assert result.rest_period == 2