✅ Berith stacks pwr from multiple enemy actions
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_passive.py::test_berith_stacks_pwr_from_multiple_enemy_actions |
Multiple enemy actions grant Berith multiple +1 PWR statuses that stack.
Preconditions
-
Lane 0: P1's Berith (#070) — READIED
-
P2 resolves 2 enemy actions in the same phase
Action
- Fire ABILITY_USED twice with side=PLAYER_2
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)
duban = make_demon("001", lane=1, owner=Side.PLAYER_2)
state = place_demon(state, berith)
state = place_demon(state, duban)
berith_on_field = next(d for d in state.demons if d.unit_id == "070")
duban_on_field = next(d for d in state.demons if d.unit_id == "001")
# Two enemy actions
for _ in range(2):
event = GameEvent(
event_type=EventType.ABILITY_USED,
source=duban_on_field,
target=None,
value=0,
side=Side.PLAYER_2,
lane=1,
)
state = fire_event(state, event)
duban_on_field = next(d for d in state.demons if d.unit_id == "001")
berith_after = next(d for d in state.demons if d.unit_id == "070")
result = get_effective_pwr(state, berith_after)
Expected Postconditions
-
Berith has 2 active +1 PWR status effects
-
Berith effective PWR = 4 + 2 = 6
Assertions
assert result == 6, (
f"Expected Berith PWR=6 (2 enemy actions × +1 PWR stacking), got {result}"
)