✅ Cycle of life end of phase hits only enemies
| Category | Interaction |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestVapulaCycleOfLife::test_cycle_of_life_end_of_phase_hits_only_enemies |
End-of-phase helper deals PWR damage to Local ENEMY demons only
Preconditions
-
Lane 0: P1's Vapula (PWR=3, alive)
-
Lane 0: P1's Murmur (ally, 0 damage)
-
Lane 0: P2's Duban (enemy, 0 damage)
Action
- Call apply_vapula_end_of_phase_damage(state, vapula)
result = apply_vapula_end_of_phase_damage(state, vapula_in)
duban_after = next(d for d in result.demons if d.unit_id == "001")
murmur_after = next(d for d in result.demons if d.unit_id == "002")
Expected Postconditions
-
Duban (enemy): 3 damage (took Vapula's PWR — no DEF from Duban's +5 passive
-
because deal_damage uses PWR damage, but here Duban has no explicit +5
-
passive in this test setup; total damage is PWR - DEF, DEF=0 → 3)
-
Murmur (ally): 0 damage unchanged (NEW text excludes allies)
Assertions
assert duban_after.damage == 3, f"Duban (enemy) takes PWR=3 damage. Got {duban_after.damage}."
assert murmur_after.damage == 0, (
f"Murmur (ally) unchanged — NEW text targets Local ENEMY only, not allies. "
f"Got {murmur_after.damage}."
)