Skip to main content

✅ Sirens call ability applies marker status

CategoryAbility
StatusPassing
Testtests/test_abilities_complex.py::TestSitriSirensCall::test_sirens_call_ability_applies_marker_status

Siren's Call ability applies a "siren_lane" status marker on Sitri.

Preconditions

  • P1 Main Phase, P1 has 3 AP

  • Lane 1: P1's Sitri (#092), READIED

Action

  • Sitri uses Siren's Call (1 AP, exhaust) at lane 1
from engine.abilities import execute_ability
result = execute_ability(state, sitri_p, ability_idx=1)

sitri_after = next(d for d in result.demons if d.unit_id == "092")

Expected Postconditions

  • Sitri: "siren_lane" status applied (value = Sitri's lane = 1)

  • Sitri: EXHAUSTED

Assertions

assert sitri_after.state == DemonState.EXHAUSTED, "Sitri exhausts itself (tap_required)"

effects = get_active_effects_on(result, sitri_after)
siren_effects = [e for e in effects if e.stat == "siren_lane"]
assert len(siren_effects) >= 1, "Sitri must have siren_lane marker status applied"
assert siren_effects[0].value == 1, (
f"siren_lane value must be Sitri's lane (1). Got {siren_effects[0].value}."
)