Skip to main content

✅ Perfect defense applies status to local allies

CategoryInteraction
StatusPassing
Testtests/test_abilities_complex.py::TestDecarabiaPerfectDefense::test_perfect_defense_applies_status_to_local_allies

Decarabia's Perfect Defense applies +15 DEF status to all local allied demons only.

Action

  • Decarabia uses Perfect Defense (2 AP, exhaust, Start of Turn)
result = execute_ability(state, decarabia_p, ability_idx=1)
decarabia_after = next(d for d in result.demons if d.unit_id == "008")
murmur_after = next(d for d in result.demons if d.unit_id == "002")
duban_after = next(d for d in result.demons if d.unit_id == "001")

from engine.status_effects import get_active_effects_on
dec_effects = get_active_effects_on(result, decarabia_after)
mur_effects = get_active_effects_on(result, murmur_after)
dub_effects = get_active_effects_on(result, duban_after)

Expected Postconditions

  • Decarabia: +15 DEF status active

  • Murmur (P1 ally): +15 DEF status active

  • Duban (P2 enemy): no status effect applied

Assertions

assert any(e.stat == "def" and e.value == 15 for e in dec_effects)
assert any(e.stat == "def" and e.value == 15 for e in mur_effects)
assert not any(e.stat == "def" for e in dub_effects)