✅ Lix tetrax free march does not affect other units
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_passive.py::test_lix_tetrax_free_march_does_not_affect_other_units |
Other demons still pay full March cost (1 AP). Lix Tetrax's
Preconditions
-
Lane 0: P1's Duban (#001) — READIED
-
P1 has 3 AP
Action
- Call march_demon(state, duban, target_lane=1)
from engine.operations import march_demon
state = make_game_state()
state.players[Side.PLAYER_1].ap = 3
duban = make_demon("001", lane=0, owner=Side.PLAYER_1)
state = place_demon(state, duban)
duban_on_field = state.demons[0]
new_state = march_demon(state, duban_on_field, 1)
duban_after = next(d for d in new_state.demons if d.unit_id == "001")
Expected Postconditions
-
Duban in lane 1
-
P1 AP = 2 (spent 1 AP for normal March cost)
Assertions
assert duban_after.lane == 1, f"Expected Duban in lane 1, got {duban_after.lane}"
assert new_state.players[Side.PLAYER_1].ap == 2, (
f"Expected P1 AP=2 (normal march cost 1), got {new_state.players[Side.PLAYER_1].ap}"
)