Skip to main content

✅ Question passive no fire without hidden card

CategoryAbility
StatusPassing
Testtests/test_abilities_familiars.py::test_question_passive_no_fire_without_hidden_card

A demon attacks Question but Question has NO unrevealed card.

Preconditions

  • Lane 0: P1's Question (120_3) — no hidden_card in abilities_used_this_turn.

  • Lane 0: P2's Murmur (002) — 12 HP, 0 damage, READIED.

Action

  • Fire DAMAGE_RECEIVED event targeting Question.
from engine.events import fire_event

state = make_game_state()

question = make_familiar_demon("120_3", lane=0, owner=Side.PLAYER_1, current_hp=1)
# No hidden_card set — abilities_used_this_turn is empty by default
state = place_demon(state, question)
question = state.demons[-1]

murmur = make_demon("002", lane=0, owner=Side.PLAYER_2)
state = place_demon(state, murmur)
murmur = state.demons[-1]

event = GameEvent(
event_type=EventType.DAMAGE_RECEIVED,
source=murmur,
target=question,
value=1,
side=Side.PLAYER_2,
lane=0,
)
new_state = fire_event(state, event)

murmur_after = next((d for d in new_state.demons if d.unit_id == "002"), None)

Expected Postconditions

  • Murmur damage = 0 (no retaliation without a hidden card).

  • Question still on field.

Assertions

assert murmur_after is not None, "Murmur should be on field."
assert murmur_after.damage == 0, (
f"Murmur should take no damage from Question without a hidden card. "
f"Got {murmur_after.damage}."
)

question_on_field = [d for d in new_state.demons if d.unit_id == "120_3"]
assert len(question_on_field) == 1, "Question should still be on field (no hidden card to reveal)."