Purson
Granter of Familiars
Unit #084
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 6 | 2 | 1 | Slow | Any | C |
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.)
Related Articles