Skip to main content

✅ Sirens call movement moves all exhausted demons to lane

CategoryInteraction
StatusPassing
Testtests/test_abilities_complex.py::TestSitriSirensCall::test_sirens_call_movement_moves_all_exhausted_demons_to_lane

apply_sirens_call_movement moves all EXHAUSTED demons to Sitri's lane.

Preconditions

  • Lane 0: P1's Sitri (#092), READIED

  • Lane 1: P1's Murmur (#002), EXHAUSTED (should be moved to Lane 0)

  • Lane 2: P2's Duban (#001), EXHAUSTED (should be moved to Lane 0)

  • Lane 1: P2's Sabnock (#003), READIED (should NOT be moved)

Action

  • Call apply_sirens_call_movement(state, sitri_lane=0)
result = apply_sirens_call_movement(state, sitri_lane=0)

murmur_after = next(d for d in result.demons if d.unit_id == "002")
duban_after = next(d for d in result.demons if d.unit_id == "001")
sabnock_after = next(d for d in result.demons if d.unit_id == "003")

Expected Postconditions

  • Murmur: lane = 0 (moved from 1)

  • Duban: lane = 0 (moved from 2)

  • Sabnock: lane = 1 (not moved — readied)

Assertions

assert murmur_after.lane == 0, f"Exhausted Murmur must move to lane 0. Got {murmur_after.lane}."
assert duban_after.lane == 0, f"Exhausted Duban must move to lane 0. Got {duban_after.lane}."
assert sabnock_after.lane == 1, f"READIED Sabnock must NOT move. Got {sabnock_after.lane}."