✅ Get all other demons includes allies
| Category | Regression |
| Status | Passing |
| Test | tests/test_targeting.py::test_get_all_other_demons_includes_allies |
Regression: Confusion #21 — get_all_other_demons still includes allies of excluded demon.
Preconditions
-
P1 owns Duban (#001) and Murmur (#002) in lane 0.
-
P2 owns Gusion (#105) in lane 0.
Action
- get_all_other_demons(state, exclude=duban)
result = get_all_other_demons(state, placed_duban)
result_unit_ids = {d.unit_id for d in result}
Expected Postconditions
-
Result contains Murmur (P1 ally — NOT excluded just because it's allied).
-
Result contains Gusion (P2 enemy).
-
Result does NOT contain Duban (the excluded demon itself).
-
Length of result is 2.
-
'All Other Demons' means everyone except the source — allies still take friendly fire.
Assertions
assert len(result) == 2
assert "001" not in result_unit_ids # Duban — excluded
assert "002" in result_unit_ids # Murmur — P1 ally still included
assert "105" in result_unit_ids # Gusion — P2 enemy included