✅ Buer heals allies on exhaust
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_passive.py::test_buer_heals_allies_on_exhaust |
When Buer exhausts, all other local allied demons have damage
Preconditions
-
P1 Main Phase
-
Lane 0: P1's Buer (#014) — READIED, base PWR=3, 0 damage
-
Lane 0: P1's Duban (#001) — READIED, 5 damage (ally, same lane)
-
No other demons in lane 0
Action
- Fire DEMON_EXHAUSTED event with source=Buer
from engine.events import GameEvent, EventType, fire_event
state = make_game_state()
buer = make_demon("014", lane=0, owner=Side.PLAYER_1)
duban = make_demon("001", lane=0, owner=Side.PLAYER_1, damage=5)
state = place_demon(state, buer)
state = place_demon(state, duban)
buer_on_field = next(d for d in state.demons if d.unit_id == "014")
duban_on_field = next(d for d in state.demons if d.unit_id == "001")
# Fire DEMON_EXHAUSTED event with Buer as source
event = GameEvent(
event_type=EventType.DEMON_EXHAUSTED,
source=buer_on_field,
target=None,
value=None,
side=Side.PLAYER_1,
lane=0,
)
new_state = fire_event(state, event)
duban_after = next(d for d in new_state.demons if d.unit_id == "001")
Expected Postconditions
-
Duban's damage reduced by 3 (Buer's PWR): was 5, now 2
-
Buer's damage unchanged: 0
Assertions
assert duban_after.damage == 2, (
f"Expected Duban damage=2 (5-3 from Buer PWR), got {duban_after.damage}"
)