Skip to main content

Paimon

The Omniscient

Unit #095

HPPWRCPSpeedRangeTier
12 (+6)4 (+2)3 (+2)SlowAnyB

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.)
Paimon