✅ Flank does not apply when condition not met
| Category | Interaction |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestEligosFlank::test_flank_does_not_apply_when_condition_not_met |
Flank condition: more allied than enemy. If condition fails, no effect.
Preconditions
-
P1 Main Phase, P1 has 3 AP
-
Lane 0: P1's Eligos (#067), READIED
-
Lane 1: P1's Murmur (#002) ← 1 allied in target lane
-
Lane 1: P2's Duban (#001) ← 1 enemy in target lane (equal = condition fails)
Action
- Eligos uses Flank targeting Lane 1 (1 ally == 1 enemy → condition NOT met)
from engine.abilities import execute_ability
result = execute_ability(state, eligos_p, ability_idx=1, choices={"lane": 1})
duban_after = next(d for d in result.demons if d.unit_id == "001")
effects = get_active_effects_on(result, duban_after)
duban_def = sum(e.value for e in effects if e.stat == "def")
Expected Postconditions
- Duban: NO -2 DEF status (condition not met)
Assertions
assert duban_def == 0, (
f"Flank must not apply when condition not met (equal counts). Got {duban_def}."
)