✅ Purge filth hits all damaged demons including allies
| Category | Regression |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestVirgoPurgeFilth::test_purge_filth_hits_all_damaged_demons_including_allies |
Regression: Confusion #21 — Allied ability "All Demons with at least 1 damage" includes Virgo itself and all allies.
Preconditions
-
P1 Main Phase, P1 has 4 AP
-
Lane 0: P1's Virgo (#075, HP=24, damage=13), READIED
-
Lane 0: P1's Murmur (#002, 5 damage) ← P1 ally with damage
-
Lane 1: P2's Duban (#001, 3 damage) ← P2 enemy with damage
-
Lane 2: P2's Sabnock (#003, 0 damage) ← 0 damage — NOT hit
Action
- Virgo uses Purge Filth (Allied, 2 AP, exhaust): 3 Fixed to all demons with ≥1 damage
result = execute_ability(state, virgo_p, ability_idx=2)
virgo_after = next(d for d in result.demons if d.unit_id == "075")
murmur_after = next(d for d in result.demons if d.unit_id == "002")
sabnock_after = next(d for d in result.demons if d.unit_id == "003")
Expected Postconditions
-
Virgo: 13+3 = 16 damage (hits itself — has ≥1 damage)
-
Murmur (P1 ally): 5+3 = 8 damage (friendly fire)
-
Duban (P2 enemy): 3+3 = 6 damage
-
Sabnock: 0 damage (0 damage — not a target)
Assertions
assert virgo_after.damage == 16
assert murmur_after.damage == 8
assert sabnock_after.damage == 0