✅ Sabnock pink haze status expires after phase
| Category | Regression |
| Status | Passing |
| Test | tests/test_abilities_actions.py::test_sabnock_pink_haze_status_expires_after_phase |
Pink Haze status on Duban expires when the main phase ends.
Preconditions
-
P1 Main Phase (phase_counter=1)
-
Lane 0: Duban has active status "pwr" -3 and "def" -2 from Pink Haze
-
(both expire at phase_counter=1)
Action
-
Advance phase_counter to 2 (simulating end of main phase)
-
Call expire_status_effects()
state_after = execute_ability(state, sabnock_on_field, ability_idx=0, targets=[duban_on_field])
active_before = get_active_effects_on(state_after, duban_on_field)
Expected Postconditions
-
Duban: no active pwr or def status effects
-
PWR and DEF restored to base values (statuses gone — not permanent)
-
(Regression: confusion #1 — status effects are temporary, not permanent)
Assertions
assert len(active_before) == 2, "Should have 2 active effects before phase end"
state_after.phase_counter += 1
state_expired = expire_status_effects(state_after)
active_after = get_active_effects_on(state_expired, duban_on_field)
assert len(active_after) == 0, (
"All Pink Haze status effects must expire at end of main phase. "
"Status effects are TEMPORARY (confusion #1)."
)