✅ Gear blocked during own phase
| Category | Ability |
| Status | Passing |
| Test | tests/test_response_windows.py::TestGearWindow::test_gear_blocked_during_own_phase |
Even with gear_window_open=True, Gear is blocked if
Preconditions
-
P1 Main Phase (current_player=P1)
-
gear_window_open = True
-
P1's demon tries Gear
Action
See code below.
from engine.action_timing import _can_perform_for_ability
demon = make_demon("003", lane=0, owner=Side.PLAYER_1)
state = _make_state(demon)
state.gear_window_open = True
gear_ability = {"type": "Action", "timing": "gear", "ap_cost": 0,
"tap_required": False, "one_time_use": False}
ok, reason = _can_perform_for_ability(
state, state.demons[0], gear_ability, AbilityTiming.GEAR
)
Expected Postconditions
- Blocked (Gear is for opponent's phase only)
Assertions
assert not ok, "Gear should be blocked during own main phase"
assert "own main phase" in reason.lower()