Skip to main content

Orias

Demon of Astrology

Unit #016

HPPWRCPSpeedRangeTier
12 (+6)3 (+1)3 (+2)NormalAnyC

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