Skip to main content

✅ Purge filth hits all damaged demons including allies

CategoryRegression
StatusPassing
Testtests/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