Skip to main content

Camio

The First Murderer

Unit #098

HPPWRCPSpeedRangeTier
9 (+3)4 (+2)3 (+2)SlowLocalC

Abilities

Passive

q: When Camio Fatally Wounds a Demon, you may play the Familiar Black Serpent in Any Lane (if Black Serpent is not already in play).
Engine Implementation
def _camio_deploy_serpent_trigger(
state: GameState, event: GameEvent, demon: DemonInstance, depth: int
):
"""#098 Camio — Passive trigger: When Camio Fatally Wounds a Demon, deploy Black Serpent.

Fires on FATALLY_WOUNDED. Checks if Camio (this demon instance) is the source
(the attacker) that caused the fatal wound.

Deploys Black Serpent (familiar_id="098_1") in any lane if not already in play.
We default to Camio's current lane; a full implementation would present a lane
choice to the player (here we auto-deploy to Camio's lane as a simplification).

Condition: Black Serpent must NOT already be in play (all copies played = skip).
Also: Black Serpent must be in the owner's familiar_deck.
"""
from engine.operations import deploy_familiar

# Only fire if Camio is the source (killer)
if event.source is None:
return None
if event.source.instance_id != demon.instance_id:
return None

BLACK_SERPENT_ID = "098_1"

# Check if Black Serpent is already in play
already_in_play = any(
d.unit_id == BLACK_SERPENT_ID for d in state.demons
)
if already_in_play:
return None # Cannot summon if all copies in play

# Check if Black Serpent is available in Camio's owner's familiar_deck
owner = demon.owner
if BLACK_SERPENT_ID not in state.players[owner].familiar_deck:
return None # Not available

# Deploy to Camio's current lane (auto-choice; full impl would prompt)
return deploy_familiar(state, owner, BLACK_SERPENT_ID, demon.lane)

register_trigger("098", 0, _camio_deploy_serpent_trigger)

Passive

While Black Serpent is in play, Camio has +15n.
Engine Implementation
def _camio_black_serpent_def(state: GameState, demon: DemonInstance) -> dict[str, int]:
"""Return +15 DEF if the Black Serpent familiar is currently on the field."""
from engine.data_loader import FAMILIARS
# Find the Black Serpent familiar id
black_serpent_ids = [
fid for fid, fam in FAMILIARS.items()
if fam.name.lower() == "black serpent"
]
for d in state.demons:
if d.unit_id in black_serpent_ids:
return {"def": 15}
return {}

register_passive("098", 1, _camio_black_serpent_def)
Camio