Skip to main content

✅ Possession noop when performer controls gamigin

CategoryAbility
StatusPassing
Testtests/test_abilities_complex.py::TestGamiginPossession::test_possession_noop_when_performer_controls_gamigin

Gamigin's own controller tries to use Possession — no-op.

Preconditions

  • Lane 0: P1's Gamigin, P1's Murmur (same owner)

Action

  • Murmur (P1's) performs Possession
result = handler(state, murmur_p, [], {"direction": "right"}, None)

gamigin_after = next(d for d in result.demons if d.unit_id == "031")

Expected Postconditions

  • Gamigin lane unchanged (performer == controller of Gamigin).

Assertions

assert gamigin_after.lane == 0, (
f"Same-owner performer → no-op. Gamigin's lane should be unchanged. "
f"Got lane {gamigin_after.lane}."
)