Skip to main content

Purson

Granter of Familiars

Unit #084

HPPWRCPSpeedRangeTier
621SlowAnyC

Abilities

Bestow Familiar — 0 AP

q: Bestow Familiar: 0 AP - a: If none of Purson's Familiars are in play, play 1 of Purson's Familiars in Any Lane.
Engine Implementation
def _purson_bestow_familiar(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#084 Purson — Bestow Familiar
Familiar: 0 AP, (exhaust): If none of Purson's Familiars are in play,
play 1 of Purson's Familiars in Any Lane.

Purson's familiar IDs: "084_1" (Bear), "084_2" (Serpent), ...
Checks if any Purson familiar is currently in play. If none, deploys one.
Target lane from choices["lane"] or Purson's own lane as default.
"""
from engine.operations import deploy_familiar

# Find Purson's familiar IDs (all familiars with unit_id starting "084_")
from engine.data_loader import FAMILIARS
purson_familiar_ids = [k for k in FAMILIARS if k.startswith("084_")]

# Check if any Purson familiar is already in play
already_in_play = any(
d.unit_id in purson_familiar_ids for d in state.demons
)
if already_in_play:
return state # Condition not met

owner = demon.owner
target_lane = (choices.get("lane", demon.lane) if choices else demon.lane)

# Deploy first available Purson familiar from familiar_deck
for fid in purson_familiar_ids:
if fid in state.players[owner].familiar_deck:
return deploy_familiar(state, owner, fid, target_lane)

return state # No familiars available

register_ability("084", 0, _purson_bestow_familiar)

Reminder

(Purson's Familiars refers to one of the following: Vermilion Bird, Black Turtle, White Tiger, and Azure Dragon.)
Purson