✅ Flying menace ap cost discount passive
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_familiars.py::test_flying_menace_ap_cost_discount_passive |
Flying Menace A has -1 AP Cost on Basic Actions (passive).
Preconditions
- Lane 0: Flying Menace A (063_1).
Action
- Query get_effective_ap_cost for a basic action (base cost 2).
from engine.operations import get_effective_ap_cost
state = make_game_state()
fm = make_familiar_demon("063_1", lane=0, owner=Side.PLAYER_1)
state = place_demon(state, fm)
fm = state.demons[-1]
effective_cost = get_effective_ap_cost(state, fm, 2)
Expected Postconditions
- Effective AP cost = 1 (2 - 1 discount from passive).
Assertions
assert effective_cost == 1, (
f"Flying Menace A should get -1 AP on base cost 2, got {effective_cost}"
)