Skip to main content

✅ Regular familiar still cannot fuse

CategoryAbility
StatusPassing
Testtests/test_abilities_familiars.py::test_regular_familiar_still_cannot_fuse

A regular familiar (not in FUSIBLE_FAMILIARS) cannot be fused.

Preconditions

  • Lane 0: P1's Duban (#001) — regular unit, READIED.

  • Lane 0: P1's Alecto (#026_1) — regular familiar (Erinyes, no fusible override).

Action

  • can_fuse(state, duban, alecto)
from engine.fusion import can_fuse

state = make_game_state()

duban = make_demon("001", lane=0, owner=Side.PLAYER_1)
state = place_demon(state, duban)
duban = state.demons[-1]

alecto = make_familiar_demon("026_1", lane=0, owner=Side.PLAYER_1)
state = place_demon(state, alecto)
alecto = state.demons[-1]

ok, reason = can_fuse(state, duban, alecto)

Expected Postconditions

  • (False, <contains "familiar">) — normal familiars still blocked.

  • Regression: ensuring the FUSIBLE_FAMILIARS exception doesn't open all familiars.

Assertions

assert ok is False, (
f"Regular familiar Alecto should NOT be fusible. Got ok={ok}"
)
assert "familiar" in reason.lower(), (
f"Rejection reason should mention 'familiar'. Got: {reason!r}"
)