Skip to main content

✅ Zagan repositions after action declared

CategoryAbility
StatusPassing
Testtests/test_abilities_complex.py::TestZaganReposition::test_zagan_repositions_after_action_declared

ACTION_DECLARED fires — Zagan moves to a different lane.

Preconditions

  • P1 Main Phase, P1 has 3 AP

  • Lane 0: P1's Zagan (#024), READIED

Action

  • Fire ACTION_DECLARED event (side=P1, lane=2 as destination hint)

Expected Postconditions

  • Zagan moves from Lane 0 to Lane 2 (the destination hint)

  • No AP cost, no exhaust — repositioning is free

Assertions

assert zagan_after.lane == 2, (
f"Zagan must reposition to lane 2. Got lane {zagan_after.lane}."
)
assert zagan_after.state == DemonState.READIED, (
"Zagan must remain READIED after repositioning (no exhaust cost)."
)
assert result.players[Side.PLAYER_1].ap == 3, (
"Zagan reposition costs no AP."
)