✅ Shax triggers on familiar kill
| Category | Regression |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestShaxKillReward::test_shax_triggers_on_familiar_kill |
Regression: Confusion #2 — Familiars ARE demons. Shax's trigger fires
Preconditions
-
Lane 0: P1's Shax (#021, EXHAUSTED, NOT fatally_wounded)
-
Lane 0: P2's Crystal Parasite familiar (#085_1) — being killed by Shax
-
P1 AP=0
Action
- fire FATALLY_WOUNDED with source=Shax, target=Crystal Parasite (familiar)
result = fire_event(state, event)
shax_after = next(d for d in result.demons if d.unit_id == "021")
Expected Postconditions
-
Shax: READIED
-
P1 AP: 2
-
Regression: familiars ARE demons — death triggers include familiar deaths.
Assertions
assert shax_after.state == DemonState.READIED, (
"Regression confusion #2: familiars ARE demons. "
"Shax must trigger when killing a familiar."
)
assert result.players[Side.PLAYER_1].ap == 2, (
"Shax must gain 2 AP for killing a familiar (familiars are demons)."
)