Skip to main content

✅ Gear blocked during own phase

CategoryAbility
StatusPassing
Testtests/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()