✅ Possession moves gamigin when performer is opponent
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestGamiginPossession::test_possession_moves_gamigin_when_performer_is_opponent |
Opponent's demon uses Possession → Gamigin shifts 1 lane.
Preconditions
-
Lane 0: P1's Gamigin (#031)
-
Lane 1: P2's Murmur (performer)
Action
- ABILITY_HANDLERS("031", 2)
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's lane is now 1 (moved from 0 → 1 per direction "right")
Assertions
assert gamigin_after.lane == 1, (
f"Gamigin should move from lane 0 to lane 1 with direction=right. "
f"Got lane {gamigin_after.lane}."
)