✅ Charge push 2 lanes at boundary
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestAmunCharge::test_charge_push_2_lanes_at_boundary |
Amun in lane 0, target in lane 0. Push 2 lanes away.
Preconditions
-
Lane 0: P1's Amun (#086) — READIED
-
Lane 0: P1's Flauros (#013) — READIED
Action
- Amun uses Charge targeting Flauros, push_lanes=2
from engine.abilities import execute_ability
import engine.abilities_actions
importlib.reload(engine.abilities_actions)
amun = make_demon("086", lane=0, owner=Side.PLAYER_1)
flauros = make_demon("013", lane=0, owner=Side.PLAYER_1)
state, placed = _make_state_with_demons(amun, flauros, ap=6)
amun_p, flauros_p = placed
state = execute_ability(
state, amun_p, ability_idx=0,
targets=[flauros_p], choices={"push_lanes": 2},
)
flauros_after = next(d for d in state.demons if d.unit_id == "013")
amun_after = next(d for d in state.demons if d.unit_id == "086")
Expected Postconditions
-
Flauros: lane 2
-
Amun: lane 2
Assertions
assert flauros_after.lane == 2, (
f"Flauros should be pushed 2 lanes to lane 2. Got {flauros_after.lane}"
)
assert amun_after.lane == 2, (
f"Amun should follow to lane 2. Got {amun_after.lane}"
)