Skip to main content

✅ Sirens call grants bonus action

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

  1. Sitri uses Siren's Call (1 AP, exhaust)

  2. 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}"
)