✅ Flying menace retaliation once per phase
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_familiars.py::test_flying_menace_retaliation_once_per_phase |
Flying Menace retaliation fires only once per main phase.
Preconditions
-
Lane 0: Flying Menace A, already fired retaliation this phase
-
(ability_used_this_turn has retaliation key set to 1).
-
Lane 0: P2's Duban.
Action
- Fire DAMAGE_RECEIVED event again (second hit this phase).
new_state = fire_event(
state,
GameEvent(
event_type=EventType.DAMAGE_RECEIVED,
source=duban,
target=fm,
value=2,
side=Side.PLAYER_2,
lane=0,
),
)
duban_after = next(d for d in new_state.demons if d.unit_id == "001")
Expected Postconditions
- Duban's damage stays 0 (retaliation already used this phase).
Assertions
assert duban_after.damage == 0, "Retaliation should not fire twice per phase."