✅ Bloodshed only hits up to x targets
| Category | Interaction |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestRaumBloodshed::test_bloodshed_only_hits_up_to_x_targets |
Bloodshed can hit "up to X" targets — extra targets beyond X are ignored.
Preconditions
-
P1 Main Phase, P1 has 3 AP
-
Lane 0: P1's Raum (#071, PWR=4), READIED
-
Lane 0: P2's Duban (#001, 0 damage)
-
Lane 0: P2's Murmur (#002, 0 damage)
-
Lane 0: P2's Sabnock (#003, 0 damage)
-
X = 2 (only 2 targets allowed)
Action
- Raum uses Bloodshed (X=2), with 3 targets passed (only first 2 should be hit)
result = execute_ability(
state, raum_p, ability_idx=1,
targets=[duban_p, murmur_p, sabnock_p],
choices={"x": 2}
)
sabnock_after = next(d for d in result.demons if d.unit_id == "003")
Expected Postconditions
-
Duban: 2 damage (target 1)
-
Murmur: 2 damage (target 2)
-
Sabnock: 0 damage (beyond X=2 limit)
Assertions
assert sabnock_after.damage == 0, (
f"Sabnock must not be hit (beyond X=2 limit). Got {sabnock_after.damage}."
)