✅ Malthus shift moves allied demon 1 lane
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_actions.py::test_malthus_shift_moves_allied_demon_1_lane |
Malthus's Shift moves an allied demon 1 lane.
Preconditions
-
P1 Main Phase, P1 has 3 AP
-
Lane 0: P1's Malthus (#061) — READIED
-
Lane 0: P1's Sabnock (#003) — READIED (target ally)
Action
- Execute Malthus's Shift (ability idx=0, 0 AP, ready, 1x) targeting Sabnock, choices={"lane": 1}
result = execute_ability(state, malthus_on_field, ability_idx=0, targets=[sabnock_on_field], choices={"lane": 1})
sabnock_after = next(d for d in result.demons if d.unit_id == "003")
Expected Postconditions
-
Sabnock: moved to lane 1
-
Malthus: NOT exhausted (ready cost)
-
P1 AP: 3 (0 AP cost)
Assertions
assert sabnock_after.lane == 1
assert malthus_after.state == DemonState.READIED
assert result.players[Side.PLAYER_1].ap == 3