Skip to main content

Target selection

Guide

First decide how the player selects a target, then make the Behavior resolve the same object or collection

An important distinction

Target on the card controls the card-play interaction. The target source in its Behavior controls which objects an Action actually affects. Both must describe the same range. Otherwise, a card may let the player select one target but affect a different object during resolution

Card Target controls player input

TargetPlayer actionCommon target source in Behavior
NoneSelect no unitThe Behavior decides whether it needs a unit, card, or no target
Single EnemySelect one living enemyOpponent reads the enemy submitted by the player
All EnemiesSelect no unitAllEnemies resolves every living enemy
SelfSelect no unitSelf resolves the player
tip

Single Enemy displays an aiming arrow and highlights valid units before submission

A Single Enemy card targeting one highlighted living enemy

The card above is still in target selection. The play is submitted only after the player clicks a valid enemy. When the Behavior uses Opponent, it reads that selection

All Enemies skips single-target selection. Its Behavior should use AllEnemies so every living enemy receives the range effect promised by the card text

Meteor Strike resolving 15 damage on three living enemies at the same time

Meteor Strike above resolves 15 damage on three living enemies at the same time. Its Card Target, Behavior target collection, and player-facing text all describe the same range

Unit Source resolves units from the current context

SourceResolved result
SelfThe current Host: the player in a player Card, the owner in a Status, or the acting enemy in an Enemy Behavior
OpponentFor a player Host, first reads a living non-player Target, then the actual living Attacker in a reaction context, then the first living enemy; for an enemy Host, resolves the player
AllEnemiesEvery living enemy, excluding dead units
AllUnitsThe living player and all living enemies

Healing, armor, and self-Buffs normally use Self. Single-target attacks use Opponent, while range rules use AllEnemies

A connected port overrides the node field

When a node has both a Target input port and a Source field, the connection has higher priority

Target port connected -> Use the unit or collection supplied by the connection
Target port unconnected -> Resolve the target from the current context through the Source field
tip

This rule lets an Action use Self as its default target and later switch to a dynamic target through a Selector connection. Before switching the port, confirm that the original field no longer controls the result

Card Source reads current card instances

SourceResolved result
ThisCardThe CardInstance currently resolving
HandPileThe current hand
DrawPileThe current draw pile
DiscardPileThe current discard pile
ExhaustPileThe current exhaust pile
AllPilesThe combined hand, draw pile, discard pile, and exhaust pile

These sources read the current piles when a downstream node executes. Evaluating again after moving cards returns the new collection. Save a snapshot first when later logic needs the result from before the move

A Selector chooses targets from a collection

When rules rather than player input decide a target, use a Selector to filter, sort, and limit the collection in order

  1. Use Filter to keep units or cards that satisfy the conditions
  2. Use Sort to order them by HP, cost, or another value
  3. Use Pick, Take, or Random to obtain the objects required by the Action
  • Check whether the collection is empty before the Action and use Branch to enter a fallback path

  • State the target restriction in the card description

  • Give the failure path visible feedback, or reject the invalid action before the card is played Card Piles passing through Filter and Random Elements before Move Cards moves one matching card into the hand

The graph above filters the draw pile to Basic Attack cards, selects one at random, and moves it into the hand. Unit targets use the same structure. For example, sort AllEnemies by HP in ascending order, then take the first element to resolve the living enemy with the lowest HP

Empty results do not become fallback effects automatically

Built-in Actions skip empty, dead, or invalid targets. When the final collection is empty, the Action produces no effect and does not select another object automatically

tip

If an empty result conflicts with the card text or player expectations, handle it explicitly in the Behavior

Opponent, UnitSource, CardSource, and node names belong to Editor configuration and should not appear directly in player-facing card descriptions. Describe the final target instead, such as "Deal 8 damage to the selected enemy" or "Apply 2 Burn to all enemies."