Skip to main content

✅ Buer heals multiple allies on exhaust

CategoryInteraction
StatusPassing
Testtests/test_abilities_passive.py::test_buer_heals_multiple_allies_on_exhaust

Buer's exhaust heal applies to ALL other local allied demons,

Preconditions

  • Lane 0: P1's Buer (#014) — READIED, base PWR=3

  • Lane 0: P1's Murmur (#002) — 4 damage (ally)

  • Lane 0: P1's Duban (#001) — 6 damage (ally)

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)
murmur = make_demon("002", lane=0, owner=Side.PLAYER_1, damage=4)
duban = make_demon("001", lane=0, owner=Side.PLAYER_1, damage=6)
state = place_demon(state, buer)
state = place_demon(state, murmur)
state = place_demon(state, duban)

buer_on_field = next(d for d in state.demons if d.unit_id == "014")

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)

murmur_after = next(d for d in new_state.demons if d.unit_id == "002")
duban_after = next(d for d in new_state.demons if d.unit_id == "001")

Expected Postconditions

  • Murmur damage reduced by 3: was 4, now 1

  • Duban damage reduced by 3: was 6, now 3

Assertions

assert murmur_after.damage == 1, f"Expected Murmur damage=1, got {murmur_after.damage}"
assert duban_after.damage == 3, f"Expected Duban damage=3, got {duban_after.damage}"