Skip to main content

✅ Sabnock pink haze status expires after phase

CategoryRegression
StatusPassing
Testtests/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)."
)