Andras
The Raven Assassin
Unit #093
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 12 (+6) | 4 (+2) | 3 (+2) | Fast | Local | A |
Abilities
Passive
g actions cannot be performed in response to Andras's actions.
Engine Implementation
def _andras_no_quick_response(state, demon) -> dict:
"""#093 Andras — Passive: Quick suppression for all Andras actions.
Implementation lives in execute_ability step 9 (abilities.py). When
Andras (or a demon fused with Andras) performs any action, the
ACTION_DECLARED event is suppressed, preventing Quick responses.
"""
return {}
register_passive("093", 0, _andras_no_quick_response)
Momento Mori — 1 AP
g: Momento Mori: 1 AP - a, 1x: e: Target Local Demon cannot perform actions. Any damage dealt to the targeted Demon may be dealt as Fixed Damage. Andras's next action ignores a and b costs. (If this "cancels" an action, the costs of that action are not resolved.)
Engine Implementation
def _andras_momento_mori(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#093 Andras — Momento Mori
Quick, 1 AP, (exhaust), 1x: Status: Target Local Demon cannot perform actions.
Any damage dealt to it may be dealt as Fixed Damage. Andras's next action
ignores (exhaust) and (ready) costs.
Applies "cannot_act" status to target.
Applies "take_fixed_damage" status to target (value=1 = damage may be Fixed).
Applies "ignore_exhaust" and "ignore_ready" statuses to Andras.
Status expires end of current main phase.
"""
from engine.status_effects import apply_status
if not targets:
return state
target = targets[0]
t_current = next(
(d for d in state.demons if d.instance_id == target.instance_id), None
)
if t_current is None or t_current.fatally_wounded:
return state
# Status on target: cannot act + damage may be fixed
state = apply_status(state, demon, t_current, "cannot_act", 1)
state = apply_status(state, demon, t_current, "take_fixed_damage", 1)
# Andras ignores exhaust/ready on next action
state = apply_status(state, demon, demon, "ignore_exhaust", 1)
state = apply_status(state, demon, demon, "ignore_ready", 1)
return state
register_ability("093", 1, _andras_momento_mori)