Live demoRuns entirely in your browser
Pocket Tactics
A real MEKYRA project: a 19-line rulebook, a deterministic engine and two ghost seats. Change a rule, play it, replay the match, then break the game with thousands of seeded playtests. Your project is saved in this browser only.
Playable nowruleset v0.4.0 · 0/3 questions ruled · 0 Lab runs
§1 Setup
Two players face each other across three lanes. Each defends a Keep.
Each Keep starts with health.
Shuffle your 12-card deck and draw cards.
The second player draws extra cards.
ClaudeThis is the seat-balance knob. Worth a Break-It run before anyone playtests.
§2 Your turn
Gain energy equal to the number of turns you have taken, up to .
Then draw a card. The first player draw on their first turn.
Play units from your hand by paying their cost. Each lane holds one unit per side.
§3 Combat
At the end of your turn, each ready unit attacks the enemy unit across from it, which strikes back. If that lane is empty, it hits the enemy Keep.
Claude“Strikes back” read as simultaneous: both units deal damage in the same step.
Units that entered play this turn ready.
Question A-3Two readings are possible. Using the literal one until you rule.
A unit with damage equal to its health is destroyed.
§4 Card effects
When Spark Imp enters play, deal damage to an enemy unit in .
Claude“Adjacent” read as one lane to the left or right, not the same lane. Confirm?
If no enemy unit is in range, Spark Imp .
Question A-2Two readings are possible. Using the literal one until you rule.
When Cinder Drake enters play, deal 1 damage to each enemy unit.
When Sniper Owl enters play, deal 2 damage to the enemy Keep.
§5 Healing
When Mender enters play, heal 2 damage from a friendly unit.
Whenever another friendly unit is healed, Bloom Wisp heals 1 damage from another friendly unit.
ClaudeThis trigger can fire itself again. Whether it stops depends on §5.3.
A heal that removes no damage as healing.
Question A-1Two readings are possible. Using the literal one until you rule.
§6 Winning
A player whose Keep reaches 0 health loses.
After 40 turns the game is a draw.
“When Spark Imp enters play, deal 2 damage to an enemy unit in an adjacent lane.”
# compiled from §4.1 · source line cited
when spark_imp.enters
target 1 enemy.unit where lane in adjacent(self.lane)
do damage(target, 2)
Dials re-parameterize the engine instantly; nothing is re-generated.
Ambiguity Ledger 3 open
- A-1 · §5.3Open question
Does a heal that removes no damage still count as “healed”?
- A-2 · §4.2Open question
Can Spark Imp be played when no enemy unit is in range?
- A-3 · §3.2Open question
Do units attack on the turn they enter play?
Changes v0.4.0
No changes yet. This is the ruleset as written.
Computed live
The engine, the ghost seats, the replays and every Lab number run in your browser on the same code. The Lab plays real matches from numbered seeds, and the count on screen is the count played.
Where Claude fits
Claude’s margin notes, the three ledger questions and the wording of Lab findings come pre-authored with this project, so the demo opens instantly with no account. In Studio, Claude drafts them from your own rulebook.
Try this pathLeave question A-1 open and run the Lab: it finds the Mender and Bloom Wisp loop. Apply the fix, run again, then work on first-seat advantage with the dials in §1.4 and §2.2.