✅ Flank applies minus2 def when condition met
| Category | Interaction |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestEligosFlank::test_flank_applies_minus2_def_when_condition_met |
Eligos Flank: -2 DEF to enemies in target lane when allied > enemy in that lane.
Preconditions
-
P1 Main Phase, P1 has 3 AP
-
Lane 0: P1's Eligos (#067), READIED
-
Lane 1: P1's Murmur (#002) ← allied in target lane
-
Lane 1: P1's Sabnock (#003) ← allied in target lane (2 allies)
-
Lane 1: P2's Duban (#001) ← 1 enemy in target lane
-
2 allies > 1 enemy → condition met
Action
- Eligos uses Flank (1 AP, ready, 1x) targeting Lane 1
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")
eligos_after = next(d for d in result.demons if d.unit_id == "067")
effects = get_active_effects_on(result, duban_after)
duban_def = sum(e.value for e in effects if e.stat == "def")
Expected Postconditions
-
Duban: -2 DEF status (expires end of phase)
-
Eligos: still READIED (ready_required)
-
P1 AP: 2 (3 - 1)
Assertions
assert duban_def == -2, (
f"Duban must have -2 DEF when condition met (2 allies > 1 enemy). Got {duban_def}."
)
assert eligos_after.state == DemonState.READIED, (
"Eligos stays READIED (ready_required, not tap_required)"
)