Skip to main content

✅ Taurus does not apply def for different lane

CategoryAbility
StatusPassing
Testtests/test_abilities_passive.py::test_taurus_does_not_apply_def_for_different_lane

Demon in a DIFFERENT lane takes damage — Taurus does NOT trigger.

Preconditions

  • Lane 0: P1's Taurus (#052) — READIED

  • Lane 1: P2's Duban (#001) — READIED (different lane)

Action

  • Fire DAMAGE_RECEIVED event: target=Duban (lane 1), value=3
from engine.events import GameEvent, EventType, fire_event
from engine.operations import get_effective_def

state = make_game_state()
taurus = make_demon("052", lane=0, owner=Side.PLAYER_1)
duban = make_demon("001", lane=1, owner=Side.PLAYER_2)
state = place_demon(state, taurus)
state = place_demon(state, duban)

duban_on_field = next(d for d in state.demons if d.unit_id == "001")

event = GameEvent(
event_type=EventType.DAMAGE_RECEIVED,
source=None,
target=duban_on_field,
value=3,
side=Side.PLAYER_2,
lane=1,
)
new_state = fire_event(state, event)

duban_after = next(d for d in new_state.demons if d.unit_id == "001")
result = get_effective_def(new_state, duban_after)

Expected Postconditions

  • Duban has NO Taurus status effect (different lane)

  • Duban effective DEF = 5 (Duban passive only)

Assertions

assert result == 5, (
f"Expected Duban DEF=5 (no Taurus buff, different lane), got {result}"
)