Skip to main content

✅ Local attacker damage reduced by 2

CategoryAbility
StatusPassing
Testtests/test_abilities_complex.py::TestIskandarLocalDef::test_local_attacker_damage_reduced_by_2

Iskandar has +2 DEF from damage by Local Demons (patch).

Preconditions

  • Lane 0: P1's Iskandar (#104, HP=9), READIED

  • Lane 0: P2's Duban (#001, PWR=3 effective — but we fire event directly),

  • Local to Iskandar

Action

  • deal_damage from Duban to Iskandar with raw amount 3

  • DAMAGE_RECEIVED fires → Iskandar's Local-DEF trigger reduces by 2

from engine.operations import deal_damage

iskandar = make_demon("104", lane=0, owner=Side.PLAYER_1)
duban = make_demon("001", lane=0, owner=Side.PLAYER_2)

state, placed = _make_state_with_demons(iskandar, duban, ap=3)
iskandar_p = placed[0]
duban_p = placed[1]

# Deal 3 raw damage from Duban (Local) to Iskandar
result = deal_damage(state, duban_p, iskandar_p, 3)

iskandar_after = next(d for d in result.demons if d.unit_id == "104")

Expected Postconditions

  • Iskandar: 1 damage (3 raw → effective 3 after DEF=0 → trigger heals 2 → 1)

Assertions

assert iskandar_after.damage == 1, (
f"Iskandar should take 1 damage (3 raw - 2 from Local-DEF passive). "
f"Got {iskandar_after.damage}."
)