✅ Hebe ambrosia status expires end of phase
| Category | Regression |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestHebe::test_hebe_ambrosia_status_expires_end_of_phase |
Regression: Confusion #9 — status effects are temporary, expire end of main phase.
Preconditions
- Hebe applied Imperfect Ambrosia status to Murmur (active)
Action
- Advance phase counter → expire status effects
result = execute_ability(state, hebe_p, ability_idx=2, targets=[murmur_p])
murmur_after = next(d for d in result.demons if d.unit_id == "002")
effects_before = get_active_effects_on(result, murmur_after)
# Advance phase and expire
result.phase_counter += 1
result2 = expire_status_effects(result)
murmur_final = next(d for d in result2.demons if d.unit_id == "002")
effects_after = get_active_effects_on(result2, murmur_final)
Expected Postconditions
- Murmur has NO active PWR/DEF status effects after phase expires
Assertions
assert len(effects_before) > 0, "Status must be active before phase end"
assert len(effects_after) == 0, "Status must expire at end of phase"