Skip to main content

✅ Blood sacrifice fixed damage bypasses def

CategoryAbility
StatusPassing
Testtests/test_abilities_actions.py::test_blood_sacrifice_fixed_damage_bypasses_def

Blood Sacrifice deals FIXED damage — bypasses DEF entirely.

Preconditions

  • Sabnock has +5 DEF status manually applied

  • Blood Sacrifice deals 4 Fixed Damage

Action

  • Execute Blood Sacrifice targeting Sabnock with DEF applied
# Apply +5 DEF status to Sabnock
def_status = StatusEffect(stat="def", value=5, target_instance_id=sabnock.instance_id, ...)
state.status_effects.append(def_status)
sabnock_def = get_effective_def(state, sabnock_on_field)

Expected Postconditions

  • Sabnock takes exactly 4 damage (not reduced by DEF)

  • (Critical: Fixed Damage bypasses DEF — use deal_fixed_damage not deal_damage)

Assertions

assert sabnock_def == 5
result = execute_ability(state, glasya_on_field, ability_idx=1, targets=[sabnock_on_field])
sabnock_after = next(d for d in result.demons if d.unit_id == "003")
assert sabnock_after.damage == 4