Nergal
Bringer of War
Unit #018
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 12 (+6) | 2 | 3 (+2) | Fast | Distant | B |
Abilities
Adaptability — 0 AP
i: Adaptability: 0 AP - a: e: Target Demon has -1 AP Cost and cannot be Readied.
Engine Implementation
def _nergal_adaptability(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#018 Nergal — Adaptability
Allied, 0 AP, (exhaust): Status: Target Demon has -1 AP Cost and cannot be Readied.
Status expires end of current main phase.
Allied: any allied demon can perform this (ability_implementation_guide.json).
"Cannot be Readied" is stored as status key "cannot_be_readied" = 1.
Targets: [target_demon]
"""
target = targets[0]
state = apply_status(state, demon, target, "ap_cost", -1)
state = apply_status(state, demon, target, "cannot_be_readied", 1)
return state
register_ability("018", 0, _nergal_adaptability)
Nine Variations — 1 AP
Nine Variations: 1 AP - a, 1x: e: All Allied Demons have -1 AP Cost and cannot be Readied.
Engine Implementation
def _nergal_nine_variations(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#018 Nergal — Nine Variations
1 AP, (exhaust), 1x: Status: All Allied Demons have -1 AP Cost and cannot be Readied.
Status expires end of current main phase.
Applies to ALL allied demons on the board (including Nergal itself).
"Cannot be Readied" is stored as status key "cannot_be_readied" = 1.
Targets: None (applies to all allied demons)
"""
allied = [d for d in state.demons if d.owner == demon.owner]
for ally in allied:
state = apply_status(state, demon, ally, "ap_cost", -1)
state = apply_status(state, demon, ally, "cannot_be_readied", 1)
return state
register_ability("018", 1, _nergal_nine_variations)