✅ Chiron fusion blocks local range
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_passive.py::test_chiron_fusion_blocks_local_range |
Chiron cannot fuse with a Range: Local demon.
Preconditions
-
Lane 0: P1's Chiron (#046) — READIED (Range: Distant)
-
Lane 0: P1's Duban (#001) — READIED (Range: Local)
Action
- Call can_fuse(state, chiron, duban)
from engine.fusion import can_fuse
state = make_game_state()
chiron = make_demon("046", lane=0, owner=Side.PLAYER_1)
duban = make_demon("001", lane=0, owner=Side.PLAYER_1)
state = place_demon(state, chiron)
state = place_demon(state, duban)
chiron_on_field = next(d for d in state.demons if d.unit_id == "046")
duban_on_field = next(d for d in state.demons if d.unit_id == "001")
ok, reason = can_fuse(state, chiron_on_field, duban_on_field)
Expected Postconditions
- Returns (False,
) — fusion blocked (Distant range required)
Assertions
assert ok is False, (
f"Expected Chiron+Duban fusion to be blocked (Local range), got ok=True"
)
assert "Distant" in reason, (
f"Expected reason to mention 'Distant', got: {reason}"
)