Tyr
Hell's Shackles
Unit #048
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 15 (+9) | 3 (+1) | 4 (+3) | Fast | Local | A |
Abilities
Dromi — 0 AP
Dromi: 0 AP - a, 1x: Move Target Distant Demon to Tyr Demon's Lane. e: Tyr's next action ignores a and b costs.
Engine Implementation
def _tyr_dromi(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#048 Tyr — Dromi
0 AP, (exhaust), 1x: Move Target Distant Demon to Tyr's Lane.
Status: Tyr's next action ignores (exhaust) and (ready) costs.
Status expires end of current main phase.
Moves the target to Tyr's current lane.
Status markers "ignore_exhaust" and "ignore_ready" on Tyr.
Targets: [target_distant_demon]
"""
target = targets[0]
state = _move_to_lane(state, target, demon.lane)
# Apply "ignore_exhaust" and "ignore_ready" status on Tyr (self)
demon_in_new = next(d for d in state.demons if d.instance_id == demon.instance_id)
state = apply_status(state, demon_in_new, demon_in_new, "ignore_exhaust", 1)
state = apply_status(state, demon_in_new, demon_in_new, "ignore_ready", 1)
return state
register_ability("048", 0, _tyr_dromi)
Gleipnir — 2 AP
Gleipnir: 2 AP - a: Exhaust Target Local Demon. e: The targeted Demon has -2n.
Engine Implementation
def _tyr_gleipnir(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#048 Tyr — Gleipnir
2 AP, (exhaust): Exhaust Target Local Demon. Status: The targeted Demon has -2 DEF.
Status expires end of current main phase.
Exhausts the target and applies -2 DEF status.
Target must be Local — enforced by targeting logic.
Targets: [target_local_demon]
"""
target = targets[0]
state = exhaust_demon(state, target)
target_in_new = next(d for d in state.demons if d.instance_id == target.instance_id)
state = apply_status(state, demon, target_in_new, "def", -2)
return state
register_ability("048", 1, _tyr_gleipnir)