Skip to main content

✅ Cycle of life end of phase hits only enemies

CategoryInteraction
StatusPassing
Testtests/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}."
)