✅ Geb heal normal when geb has damage
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_passive.py::test_geb_heal_normal_when_geb_has_damage |
If Geb has damage, the heal removes from Geb normally — no redirect.
Preconditions
-
Lane 0: P1's Geb (#044) — 5 damage
-
Lane 0: P1's Duban (#001) — 4 damage (ally)
-
Heal removes 3 from Geb
Action
- Call geb_remove_damage(state, geb, amount=3)
from engine.abilities_passive import geb_remove_damage
state = make_game_state()
geb = make_demon("044", lane=0, owner=Side.PLAYER_1, damage=5)
duban = make_demon("001", lane=0, owner=Side.PLAYER_1, damage=4)
state = place_demon(state, geb)
state = place_demon(state, duban)
geb_on_field = next(d for d in state.demons if d.unit_id == "044")
new_state = geb_remove_damage(state, geb_on_field, 3)
geb_after = next(d for d in new_state.demons if d.unit_id == "044")
duban_after = next(d for d in new_state.demons if d.unit_id == "001")
Expected Postconditions
-
Geb damage reduced from 5 to 2
-
Duban damage unchanged: still 4
Assertions
assert geb_after.damage == 2, f"Expected Geb damage=2 (5-3), got {geb_after.damage}"
assert duban_after.damage == 4, f"Expected Duban unchanged (4), got {duban_after.damage}"