✅ Purifying flame can be fused
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_familiars.py::test_purifying_flame_can_be_fused |
Purifying Flame can be fused as a bottom card (fusion override).
Preconditions
-
Lane 0: P1's Duban (#001) — regular unit, READIED.
-
Lane 0: P1's Purifying Flame (#102_1) — familiar with fusible override.
-
Both same lane, same owner.
Action
- can_fuse(state, duban, purifying_flame)
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]
flame = make_familiar_demon("102_1", lane=0, owner=Side.PLAYER_1)
state = place_demon(state, flame)
flame = state.demons[-1]
ok, reason = can_fuse(state, duban, flame)
Expected Postconditions
-
(True, "") — fusion is legal because 102_1 is in FUSIBLE_FAMILIARS.
-
Card text: "Demons can Fuse with Purifying Flame" (ability[0]).
Assertions
assert ok is True, (
f"Purifying Flame should be fusible (FUSIBLE_FAMILIARS override). "
f"Got ok={ok}, reason={reason!r}"
)
assert reason == "", f"Expected empty reason string, got {reason!r}"