Skip to main content

✅ Gamigin forces fusion on death

CategoryAbility
StatusPassing
Testtests/test_abilities_complex.py::TestGamiginForcedFusion::test_gamigin_forces_fusion_on_death

Gamigin dies and forces its card to fuse onto an opponent's demon.

Preconditions

  • P1 Main Phase

  • Lane 0: P1's Gamigin (#031) — HP=6, 6 damage, fatally_wounded=True (dying)

  • Lane 1: P2's Murmur (#002) — HP=9, 0 damage, READIED, NOT fused

Action

  • fire FATALLY_WOUNDED with target=Gamigin
result = fire_event(state, event)

murmur_after = next(d for d in result.demons if d.unit_id == "002")

Expected Postconditions

  • P2's Murmur: fused_bottom="031" (Gamigin card fused onto it as bottom)

  • P2's Murmur: state=EXHAUSTED ("Fuse and Exhaust")

  • P2's Murmur: is_fused=True

  • Gamigin: still on field (death resolution happens after triggers)

Assertions

assert murmur_after.fused_bottom == "031", (
f"Gamigin's card must be fused onto P2's Murmur. "
f"fused_bottom={murmur_after.fused_bottom!r}, expected '031'."
)
assert murmur_after.is_fused is True, "Murmur must be marked as fused."
assert murmur_after.state == DemonState.EXHAUSTED, (
"Card text says 'Fuse and Exhaust' — Murmur must be EXHAUSTED after fusion."
)