Skip to main content

✅ Chiron fusion blocks local range

CategoryAbility
StatusPassing
Testtests/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}"
)