✅ Sirens call grants bonus action
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestSitriSirensCall::test_sirens_call_grants_bonus_action |
Sitri uses Siren's Call, then end_main_phase resolves.
Preconditions
-
P1 Main Phase, P1 has 3 AP
-
Lane 0: P1's Sitri (#092) — READIED
Action
-
Sitri uses Siren's Call (1 AP, exhaust)
-
end_main_phase resolves
from engine.abilities import execute_ability
from engine.turn_sequence import end_main_phase
sitri = make_demon("092", lane=0, owner=Side.PLAYER_1)
state, placed = _make_state_with_demons(sitri, ap=3)
sitri_p = placed[0]
state = execute_ability(state, sitri_p, ability_idx=1)
result = end_main_phase(state, Side.PLAYER_1)
Expected Postconditions
- Sitri's instance_id is in pending_bonus_actions
Assertions
assert result.pending_bonus_actions is not None, (
"pending_bonus_actions should be set after Siren's Call"
)
sitri_ids = [d.instance_id for d in state.demons if d.unit_id == "092"]
assert any(bid in sitri_ids for bid in result.pending_bonus_actions), (
f"Sitri should be in pending_bonus_actions. Got {result.pending_bonus_actions}"
)