Skip to main content

✅ Shax does not trigger if not the killer

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