Paimon
The Omniscient
Unit #095
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 12 (+6) | 4 (+2) | 3 (+2) | Slow | Any | B |
Abilities
Omnipotence — 1 AP
Omnipotence: 1 AP - b, 1x: Reveal a Fusible demon card from your hand. Paimon performs a Special Action without q from that demon card (with cost).
Engine Implementation
def _paimon_omnipotence(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#095 Paimon — Omnipotence
Action, 1 AP, (ready), 1x: Reveal a Fusible demon card from your hand.
Paimon performs a Special Action without Familiar from that demon card (with cost).
choices["revealed_unit_id"] = the unit_id of the card from hand to borrow from.
choices["borrowed_ability_idx"] = the ability index to perform.
choices["borrowed_targets"] = targets for the borrowed action.
choices["borrowed_choices"] = choices for the borrowed action.
The revealed card must be a Fusible demon in the controller's hand.
Paimon pays the AP cost of the borrowed action and exhaust/ready rules apply.
This handler applies the borrowed ability's handler with Paimon as the actor.
"""
from engine.abilities import ABILITY_HANDLERS
if not choices:
return state
revealed_uid = choices.get("revealed_unit_id")
borrowed_idx = choices.get("borrowed_ability_idx", 0)
borrowed_targets = choices.get("borrowed_targets", targets or [])
borrowed_choices_inner = choices.get("borrowed_choices", {})
if revealed_uid is None:
return state
# Check the revealed card is a Fusible demon in Paimon's hand
owner = demon.owner
if revealed_uid not in state.players[owner].hand:
return state # Card not in hand — invalid
# Look up the borrowed ability handler
handler = ABILITY_HANDLERS.get((revealed_uid, borrowed_idx))
if handler is None:
return state # No handler found — no-op
# Paimon performs the borrowed ability as if it were Paimon acting
return handler(state, demon, borrowed_targets, borrowed_choices_inner, rng)
register_ability("095", 0, _paimon_omnipotence)
Reminder
(As Omnipotence does not have g or h, Special Actions with g or h cannot be performed in their special phases.)