Skip to main content

✅ Shax triggers on familiar kill

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