✅ Perfect defense applies status to local allies
| Category | Interaction |
| Status | Passing |
| Test | tests/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)