✅ End main phase expires status
| Category | Regression |
| Status | Passing |
| Test | tests/test_turn_sequence.py::test_end_main_phase_expires_status |
Regression (confusions #1, #9): Status effects MUST expire at end_main_phase.
Preconditions
-
P1 Main Phase, phase_counter = 5.
-
Duban (001) on P1's side, lane 0, READIED.
-
Duban has status effect: stat="pwr", value=-3, expires_phase=5.
Action
- end_main_phase(state, Side.PLAYER_1)
Expected Postconditions
-
phase_counter = 6 (incremented from 5).
-
Duban's status effect is removed (expires_phase=5 < phase_counter=6).
-
Duban is still on the board.
Assertions
assert len(state.status_effects) == 1
result = end_main_phase(state, Side.PLAYER_1)
assert result.phase_counter == 6
assert len(result.status_effects) == 0 # Status effect expired
assert len(result.demons) == 1 # Duban still on board