Skip to main content

✅ Berith no status on allied action

CategoryAbility
StatusPassing
Testtests/test_abilities_passive.py::test_berith_no_status_on_allied_action

When an ALLIED demon resolves an action, Berith does NOT gain status.

Preconditions

  • Lane 0: P1's Berith (#070) — READIED

  • P1's Murmur (#002) resolves an action

Action

  • Fire ABILITY_USED event with source=Murmur, side=PLAYER_1 (ally)
from engine.events import GameEvent, EventType, fire_event
from engine.operations import get_effective_pwr

state = make_game_state()
berith = make_demon("070", lane=0, owner=Side.PLAYER_1)
murmur = make_demon("002", lane=0, owner=Side.PLAYER_1)
state = place_demon(state, berith)
state = place_demon(state, murmur)

murmur_on_field = next(d for d in state.demons if d.unit_id == "002")

event = GameEvent(
event_type=EventType.ABILITY_USED,
source=murmur_on_field,
target=None,
value=0,
side=Side.PLAYER_1,
lane=0,
)
new_state = fire_event(state, event)

berith_after = next(d for d in new_state.demons if d.unit_id == "070")

Expected Postconditions

  • Berith PWR unchanged (base 4, no status)

  • Stack counter unchanged (0)

Assertions

assert get_effective_pwr(new_state, berith_after) == 4
assert berith_after.abilities_used_this_turn.get("0", 0) == 0