✅ Sabnock fused bottom applies def debuff
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestSabnockFusedBottomProjects::test_sabnock_fused_bottom_applies_def_debuff |
Murmur (top) fused with Sabnock (bottom). Fire ABILITY_USED
Preconditions
-
Lane 0: P1's fused demon — Murmur (#002) top, Sabnock (#003) bottom,
-
EXHAUSTED (proxy for 'paid exhaust cost')
-
Lane 0: P2's Flauros (#013) — target
Action
- Fire ABILITY_USED event with source=fused_demon, target=Flauros
from engine.events import GameEvent, EventType, fire_event
fused = make_fused_demon(
"002", "003", lane=0, owner=Side.PLAYER_1, state=DemonState.EXHAUSTED
)
flauros = make_demon("013", lane=0, owner=Side.PLAYER_2)
state, placed = _make_state_with_demons(fused, flauros)
fused_p, flauros_p = placed
event = GameEvent(
event_type=EventType.ABILITY_USED,
source=fused_p,
target=flauros_p,
value=0,
side=Side.PLAYER_1,
lane=0,
)
result = fire_event(state, event)
def_effects = [
e for e in result.status_effects
if e.target_instance_id == flauros_p.instance_id and e.stat == "def" and e.value == -2
]
Expected Postconditions
- Flauros: has status effect -2 DEF (from Sabnock fused-bottom trigger)
Assertions
assert def_effects, (
"Sabnock as fused bottom must still apply -2 DEF status on "
"the ABILITY_USED target."
)