✅ Leraje counter attacks damaged demon
| Category | Interaction |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestLerajeCounterAttack::test_leraje_counter_attacks_damaged_demon |
A demon in a different lane takes damage — Leraje counter-attacks.
Preconditions
-
P1 Main Phase, P1 has 6 AP
-
Lane 0: P1's Leraje (#091) — PWR=3, range=Distant, READIED
-
Lane 2: P2's Duban (#001) — 6 HP, 0 damage (takes damage event)
Action
- Fire DAMAGE_RECEIVED targeting Duban (lane 2), source=some other demon, value=2
Expected Postconditions
-
Leraje counter-attacks Duban: deals PWR=3 damage to Duban
-
Leraje: AP cost deducted (6 - 1 = 5 AP remaining)
-
Leraje: READIED still (exhaust ignored per card text)
Assertions
assert duban_after.damage == 3, (
f"Leraje must counter-attack Duban for 3 damage (PWR=3, no DEF). Got {duban_after.damage}."
)
assert result.players[Side.PLAYER_1].ap == 5, (
f"Leraje's counter-attack costs 1 AP (2-1). P1 AP should be 5. Got {result.players[Side.PLAYER_1].ap}."
)
assert leraje_after.state == DemonState.READIED, (
"Leraje must remain READIED after counter-attack (exhaust cost ignored)."
)