Skip to main content

✅ Flank does not apply when condition not met

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