Skip to main content

Ose

Bringer of Insanity

Unit #089

HPPWRCPSpeedRangeTier
9 (+3)3 (+1)3 (+2)NormalLocalD

Abilities

Insanity — 0 AP

Insanity: 0 AP - b, 1x: When declaring a target for this action, choose a Lane and randomly Target a Demon in that Lane. The targeted Demon's Evoker may have the targeted Demon perform an action with -2 AP Cost and ignoring a and b costs.
Engine Implementation
def _ose_insanity(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#089 Ose — Insanity
Action, 0 AP, (ready), 1x: Randomly Target a Demon in a chosen Lane. The
targeted Demon's Evoker may have the targeted Demon perform an action with
-2 AP Cost, ignoring (exhaust) and (ready) costs.

Target is randomly selected from the chosen lane.
Applies "insanity_discount" status to the target (value=-2 AP cost).
Applies "ignore_exhaust" and "ignore_ready" statuses.
Status expires end of current main phase.
"""
from engine.status_effects import apply_status
import random as _rng

# Determine target
if targets:
target = targets[0]
elif choices and "lane" in choices:
lane_demons = [d for d in state.demons if d.lane == choices["lane"] and not d.fatally_wounded]
if not lane_demons:
return state
target = (rng.choice(lane_demons) if rng else _rng.choice(lane_demons))
else:
return state

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

state = apply_status(state, demon, t_current, "ap_cost", -2)
state = apply_status(state, demon, t_current, "ignore_exhaust", 1)
state = apply_status(state, demon, t_current, "ignore_ready", 1)

return state

register_ability("089", 0, _ose_insanity)
Ose