Skip to main content

Tyr

Hell's Shackles

Unit #048

HPPWRCPSpeedRangeTier
15 (+9)3 (+1)4 (+3)FastLocalA

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)
Tyr