Orias
Demon of Astrology
Unit #016
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 12 (+6) | 3 (+1) | 3 (+2) | Normal | Any | C |
Abilities
Passive
When Orias declares an action targeting exactly 1 Demon, Orias may target an additional Distinct Demon. (Target restrictions still apply.)
Engine Implementation
def _orias_extra_target_trigger(
state: GameState, event: GameEvent, demon: DemonInstance, depth: int
) -> GameState | None:
"""#016 Orias — When Orias declares an action targeting exactly 1 Demon,
apply a status marker signaling that a second target window is open.
event.source = the demon declaring the action (must be Orias)
event.target = the single target (must be exactly 1)
Applies an "orias_extra_target" marker (+1 ap_cost reduction of 0 effectively)
as a signal. Production execute_ability reads choices["extra_target"] to extend.
"""
orias = next((d for d in state.demons if d.instance_id == demon.instance_id), None)
if orias is None or orias.fatally_wounded:
return None
# Must be Orias herself declaring the action
if event.source is None:
return None
if event.source.instance_id != orias.instance_id:
return None
# Must be targeting exactly 1 demon (event.target is the sole target)
if event.target is None:
return None
# Apply marker: "orias_extra_target" status on Orias (value=1, expires this phase)
# This signals to the execute_ability layer that a second target can be specified.
new_state = _apply_status_orias(state, orias, orias, "orias_extra_target", 1)
return new_state
register_trigger("016", 0, _orias_extra_target_trigger)