✅ Shax does not trigger if not the killer
| Category | Interaction |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestShaxKillReward::test_shax_does_not_trigger_if_not_the_killer |
Shax is on the field but NOT the source of the kill — must not trigger.
Preconditions
-
Lane 0: P1's Shax (#021, NOT fatally_wounded)
-
Lane 1: P1's Vine (#085, READIED) — Vine is the KILLER
-
P2's enemy in lane 1 — killed by Vine
Action
- fire FATALLY_WOUNDED with source=Vine, target=enemy
result = fire_event(state, event)
shax_after = next(d for d in result.demons if d.unit_id == "021")
Expected Postconditions
-
P1 AP unchanged (Shax did not kill)
-
Shax state unchanged
Assertions
assert shax_after.state == DemonState.EXHAUSTED, (
"Shax was NOT the killer — must remain EXHAUSTED."
)
assert result.players[Side.PLAYER_1].ap == 0, (
"Shax must not grant AP when it did not deal the killing blow."
)