Pollux
Familiar of Castor — Card 1 of 1
| HP | PWR | CP | Speed | Range |
|---|---|---|---|---|
| 7 (+1) | 2 | 2 (+1) | C (Companion) | Local |
Abilities
Passive
Demons can Fuse with Pollux
Engine Implementation
def _pollux_fusible_passive(state: GameState, demon: DemonInstance) -> dict:
"""112_1 Pollux: marker passive — fusible by Demons.
Returns {"fusible_familiar": 1} to signal that normal familiar fuse
restrictions are lifted for this card.
"""
return {"fusible_familiar": 1}
register_passive("112_1", 0, _pollux_fusible_passive)
Passive
After each action Castor or Pollux performs for the first time in each Main Phase, the other may immediately perform the same action with -2 AP Cost.
Engine Implementation
def _castor_pollux_mirror_trigger(state: GameState, event: GameEvent, demon: DemonInstance, depth: int) -> GameState | None:
"""112_1 Pollux — mirror trigger: after Castor acts for the first time in
a Main Phase, Pollux gains -2 AP Cost window.
Also: if Pollux acts first, Castor gets the window. Since this trigger
is registered on Pollux, we handle the "after Castor acts → Pollux gets discount"
case here.
"""
source = event.source
if source is None:
return None
# Castor is unit_id "112"
if source.unit_id != "112":
return None
if source.owner != demon.owner:
return None
# Grant -2 AP Cost to Pollux for this phase
new_state = apply_status(state, source, demon, "ap_cost", -2)
return new_state
register_trigger("112_1", 1, _castor_pollux_mirror_trigger)