Skip to main content

✅ Sabnock fused bottom applies def debuff

CategoryAbility
StatusPassing
Testtests/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."
)